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

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

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;

Apresentações semelhantes


Apresentação em tema: "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;"— 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ó. próximoInformação

5 Estrutura da lista ligada

6 Inserção de um nó em uma Lista Ligada 1. Conseguir um endereço p para um novo nó 2. Colocar a informação desejada no respectivo campo do nó apontado por p 3. O endereço do primeiro nó existente é colocado no campo de endereço do nó recém-criado 4. 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 1. O valor do endereço armazenado em plist é guardado na variável p 2. O conteúdo do campo endereço do nó a ser excluído é armazenado em plist 3. O conteúdo do campo de informação do nó a ser excluído é armazenado em x para uma possível utilização 4. 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 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 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. Objetivos: Racionalizar as operações de INSERÇÃO e REMOÇÃO; Racionalizar a utilização da memória utilizando apenas o necessário;"

Apresentações semelhantes


Anúncios Google