A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 11 LISTAS LIGADAS.

Apresentações semelhantes


Apresentação em tema: "Aula 11 LISTAS LIGADAS."— Transcrição da apresentação:

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 IMPLEMENTAÇAO DE PILHA ATRAVES DE LISTA ENCADEADA
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.

11 Estrutura a ser utilizada:
topo /

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

13 se (filavazia(q) = “v”) então imprima “underflow na fila!” senão
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

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

15 Insfila(q,x) 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

16 Listas Ligadas como Estrutura de Dados

17 Inserção e Remoção - Lista Ligada
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)

18


Carregar ppt "Aula 11 LISTAS LIGADAS."

Apresentações semelhantes


Anúncios Google