Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.