1 / 18

Aula 11

Aula 11. LISTAS LIGADAS. Objetivos :. Racionalizar as operações de INSERÇÃO e REMOÇÃO; Racionalizar a utilização da memória utilizando apenas o necessário; Condicionar o crescimento da lista apenas à disponibilidade de memória. Características :.

sol
Download Presentation

Aula 11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aula 11 LISTAS LIGADAS

  2. Objetivos: • Racionalizar as operações de INSERÇÃO e REMOÇÃO; • Racionalizar a utilização da memória utilizando apenas o necessário; • Condicionar o crescimento da lista apenas à disponibilidade de memória.

  3. Características: • Utilização de variáveis dinâmicas e apontadores; • Cada nó além da informação propriamente dita dever armazenar uma referência ao próximo elemento da lista. • É necessária a existência de uma variável que armazene o endereço do primeiro nó da lista já que este não é o seguinte de nenhum outro; • É necessário convencionar um valor para representar apontador nulo, ou seja, cujo valor não seja nenhum endereço válido de memória. (NULL) ; • NULL = constante que representa apontador para nenhum nó. Será usado para representar lista vazia ou fim de lista

  4. Listas Simplesmente Encadeadas • Estrutura de um nó: • O campo INFORMAÇÃO destina-se ao armazenamento da informação propriamente dita do nó. Pode ser de qualquer tipo válido de dado ( simples ou composto); • O campo PRÓXIMO é estrutural. Serve para armazenar o endereço do próximo nó da lista. É do tipo apontador para nó. Informação próximo

  5. Estrutura da lista ligada

  6. Inserção de um nó em uma Lista Ligada • Conseguir um endereço p para um novo nó • Colocar a informação desejada no respectivo campo do nó apontado por p • O endereço do primeiro nó existente é colocado no campo de endereço do nó recém-criado • O conteúdo da variável externa lista é atualizado com o valor do ponteiro presente em p. O conteúdo de p pode ser,então, descartado

  7. Inserção de um nó em uma Lista Ligada - Algoritmo p = getno () info(p) = x prox (p) = plist plist=p

  8. Remoção de um nó em uma Lista Ligada • O valor do endereço armazenado em plist é guardado na variável p • O conteúdo do campo endereço do nó a ser excluído é armazenado em plist • O conteúdo do campo de informação do nó a ser excluído é armazenado em x para uma possível utilização • O endereço do nó a ser excluído é fornecido como área de memória livre

  9. Remoção de um nó em uma Lista Ligada - Algoritmo p = plist plist = prox (p) x = info (p) freeno (p)

  10. Pilha: Estrutura linear com restrição do tipo LIFO (Last In First Out). Operações com as Pilhas: EMPILHAR (PUSH): Inserção de um elemento numa pilha; DESEMPILHAR (POP): Remoção de um elemento de uma pilha; CONSULTAR (TOP): Obtém valor do elemento que foi colocado por último na pilha. Todas as operações envolvem o TOPO da pilha. TOPO da pilha = “lugar” ocupado pelo elemento que foi colocado por último na pilha. IMPLEMENTAÇAO DE PILHA ATRAVES DE LISTA ENCADEADA

  11. Estrutura a ser utilizada: topo /

  12. Representação das Filas como Listas Ligadas Operação de Remoção

  13. remFila(q) se (filavazia(q) = “v”) então imprima “underflow na fila!” senão p = q.inic x= info(p) q.inic = prox (p) se (q.inic = nulo) então q.fim = nulo fim_se freeno (p) return x fim_se

  14. Representação das Filas como Listas Ligadas Operação de Inserção

  15. p = getno ( ) info (p) = x prox (p) = nulo se (q.fim = nulo) então q.inic = p senão prox (q.fim) = p fim_se q.fim = p Insfila(q,x)

  16. Listas Ligadas como Estrutura de Dados

  17. insdepois(p,x) q = getno ( ) info (q) = x prox (q) =prox (p) prox (p) = q remdepois (p,x) q =prox (p) x = info (q) prox (p)= prox (q) freeno (q) Inserção e Remoção - Lista Ligada

More Related