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

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

Estruturas de Dados Listas Prof. Rodrigo Rocha

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados Listas Prof. Rodrigo Rocha"— Transcrição da apresentação:

1 Estruturas de Dados Listas Prof. Rodrigo Rocha

2 Introdução à estrutura de dados. Alocação estática de memória.
Onde Estamos ? Ementa Introdução à estrutura de dados. Alocação estática de memória. Alocação dinâmica de memória. Pilhas. Filas. Listas. Algoritmos recursivos. Árvores. Grafos.

3 Listas Consiste em uma seqüência de elementos composto de:
Um campo de dados Uma referência para outro elemento (link) A inserção e remoção tem tempo constante (complexidade) NÃO consigo fazer acesso aleatório aos elementos Diferença com vetores Vetores alocam memória para todos os elementos Na lista a memória é alocada para cada item criado

4 Listas struct lista { int valor; struct lista *proximo; };
Podem ser implementadas em linguagem C, utilizando ponteiros e estruturas Elementos (Estrutura) Campo de referência para o outro elemento (ponteiro) struct lista { int valor; struct lista *proximo; };

5 Criando Para poder acessar a lista, um elemento apontando para o elemento inicial é criado Quando a lista é criada, o elemento inicial é criado valendo NULL struct lista *inicio; Inicio = NULL;

6 Inserindo no início Para inserir um nó no início
Crie um novo nó e aloque memória struct lista *aux; aux=(struct lista*)malloc(sizeof(struct lista)); Preencha os dados aux->valor=10; Manobre os ponteiro Novo nó aponta para o início aux->proximo=inicio; Nó inicial aponta para o novo nó inicio = aux;

7 Pesquisando Copiar o valor do nó inicial para o valor do nó atual
Enquanto o atual não for NULL (isto é, ainda existem elementos na lista) Verificar se o valor procurado está neste nó, caso contrário, pular para o próximo nó struct lista *atual; atual=(struct lista*)malloc(sizeof(struct lista)); atual = inicio; while (atual != NULL) { if (atual->valor == valorprocurado) printf(“Achou”); else atual= atual->proximo; }

8 Removendo Localize o nó anterior ao nó que deve ser removido
Faça-o apontar para o nó apontado pelo nó que irá ser removido

9 Exercícios 1-) Crie funções para cada operação (adicionar, remover, procurar) 2-) Crie uma função que traga quantos elementos tem a lista. 3-) Escreva uma função para remover de uma lista encadeada todos os elementos que contêm o valor “y” (digitado pelo usuário). 4-) Faça uma função que insira o elemento no final da lista 4-) Faça uma função que remova o elemento no final da lista 4-) Faça uma função que remova o primeiro elemento da lista 5-) Crie uma função que crie uma lista ligada a partir de um vetor fornecido pelo usuário. 6-) Faça uma função que some todos os elementos de uma lista 7-) Crie uma função que troque dois elementos de uma lista de lugar.

10 Bibliografia Livro texto Complementar
TENENBAUM, Aaron M; SOUZA, Tereza Cristina Félix de. Estruturas de Dados usando C. 1ª ed. São Paulo: Makron Books,1995. PEREIRA, Silvio do Lago. Estrutura de Dados Fundamentais : conceitos e aplicações. 9ª ed. São Paulo: Érica, 2006. VELOSO, Paulo A. S.. Estrutura de Dados. 1ª ed. São Paulo: Campus, 1983. Complementar VILLA, Marcos Vianna. Estrutura de Dados : conceitos e técnicas de implementação. 1ª ed. Rio de Janeiro: Campus, 1993. WIRTH, Niklaus. Algoritmos e estruturas de dados. 1ª ed. Rio de Janeiro: LTC, 1999 CORMEN, Thomas H.. ALGORITMOS : TEORIA E PRÁTICA. 2ª ed. Rio de Janeiro: CAMPUS, 2002 SCHILDT, Herbert. C Completo e Total. 3ª ed. São Paulo: Pearson Education, 2005


Carregar ppt "Estruturas de Dados Listas Prof. Rodrigo Rocha"

Apresentações semelhantes


Anúncios Google