54
Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: [email protected] Material elaborado com base nos slides do Prof. Túlio Toffolo (curso de 2013/01). 2014/01

BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Embed Size (px)

Citation preview

Page 1: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

BCC202 - Estrutura de Dados IAula 08: Listas (Parte 1)

Reinaldo Fortes

Universidade Federal de Ouro Preto, UFOPDepartamento de Computação, DECOM

Website: www.decom.ufop.br/reifortesEmail: [email protected]

Material elaborado com base nos slides do Prof. Túlio Toffolo (curso de 2013/01).

2014/01

Page 2: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conteúdo

1 Introdução

2 TAD Lista

3 Implementação por ARRAY

4 Implementação por PONTEIRO

5 Conclusão

6 Exercícios

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (2)

Page 3: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conteúdo

1 Introdução

2 TAD Lista

3 Implementação por ARRAY

4 Implementação por PONTEIRO

5 Conclusão

6 Exercícios

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (3)

Page 4: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Introdução

Listas

Forma simples de interligar conjuntos.

Estrutura que define operações como inserir, retirar elocalizar.

Podem crescer ou diminuir de tamanho durante a execuçãode um programa, de acordo com a demanda.

Itens podem ser acessados, inseridos ou retirados.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (4)

Page 5: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Introdução

Listas

Outras OperaçõesConcatenação de duas ou mais listas.

Partição em duas ou mais listas.

VantagensManipulação de uma quantidade imprevisível de dados.

Manipulação de dados de formato também imprevisível.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (5)

Page 6: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Introdução

Listas: Definição

Sequência de zero ou mais itens.x0, x1, x2, ..., xn−1, na qual xi é de um determinado tipo e nrepresenta o tamanho da lista.

Sua principal propriedade estrutural envolve as posiçõesrelativas dos itens em uma dimensão.

Assumindo n >= 0, x0 é o primeiro item da lista e xn−1 é oúltimo item da lista.

xi precede xi+1 para i = 0, 1, 2, ..., n − 2.

xi sucede xi−1 para i = 1, 2, 3, ..., n − 1.

O elemento xi é dito estar na i-ésima posição da lista.

Isto não implica que os dados estejam ordenados, estesconceitos remetem apenas à posição na lista.

A lista é linear.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (6)

Page 7: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conteúdo

1 Introdução

2 TAD Lista

3 Implementação por ARRAY

4 Implementação por PONTEIRO

5 Conclusão

6 Exercícios

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (7)

Page 8: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

TAD Lista

TAD Lista

O que o TAD Lista deveria conter?Representação do tipo da lista.

Conjunto de operações que atuam sobre a lista.

Quais operações deveriam fazer parte da lista?Depende de cada aplicação.

Mas, um conjunto padrão pode ser definido.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (8)

Page 9: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

TAD Lista

Conjunto Padrão de operações

Operações necessárias à grande maioria das aplicações:Criar uma lista linear vazia.

Inserir um novo item.

Retirar um item.

Localizar um item para examinar ou alterar seu conteúdo.

Combinar duas ou mais listas em uma única lista.

Dividir uma lista em duas ou mais listas.

Fazer uma cópia da lista.

Ordenar os itens da lista de acordo com um de seus campos.

Pesquisar a ocorrência de um item com um valor específico.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (9)

Page 10: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

TAD Lista

Protótipo de uma Lista

Conjunto de operações:TLista_Iniciar(Lista): cria uma nova lista.

TLista_Insere(Lista, x): insere x no final da lista.

TLista_Retira(Lista, p, x): retorna o item x que está naposição p da lista, retirando-o da lista.

TLista_EhVazia(Lista): retorna true se a lista estivervazia; false caso contrário.

TLista_Imprime(Lista): imprime os itens da lista na ordemde ocorrência.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (10)

Page 11: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

TAD Lista

Implementação de uma Lista

Várias estruturas de dados podem ser usadas para representarlistas lineares, cada uma com vantagens e desvantagensparticulares.

As duas representações mais utilizadas são:Implementação por arrays.

Implementação por ponteiros.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (11)

Page 12: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conteúdo

1 Introdução

2 TAD Lista

3 Implementação por ARRAY

4 Implementação por PONTEIRO

5 Conclusão

6 Exercícios

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (12)

Page 13: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY

Os itens são armazenados em posições contíguas de memória.

A lista pode ser percorrida em qualquer direção.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (13)

Page 14: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY

A inserção de um novo item no final tem Custo O(1).

A inserção de um novo item no meio tem Custo O(n).

A remoção de um item no meio tem Custo O(n).

Os dois últimos requerem deslocamentos.BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (14)

Page 15: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY

Os itens são armazenados em um array de tamanho suficientepara comportar todos os elementos da lista.

O campo Ultimo aponta para a posição seguinte à doúltimo elemento da lista.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (15)

Page 16: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY

O i-ésimo item da lista está armazenado na (i-1)-ésimaposição do array, 0 <= i < Ultimo.

A constante MaxTam define o tamanho máximo permitido paraa lista.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (16)

Page 17: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY: Código Exemplo (.h)

1 # define INICIO 02 # define MAXTAM 100034 typedef struct {5 int chave ;6 /* outros campos */7 } TItem ;89 typedef struct {10 TItem item[ MAXTAM ];11 int primeiro , ultimo ;12 } TLista ;

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (17)

Page 18: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY: Código Exemplo (.h)

14 /* procedimentos e funcoes da TAD */15 void TLista_FazVazia ( TLista * pLista );16 int TLista_EhVazia ( TLista * pLista );17 int TLista_Insere ( TLista *pLista , TItem x);18 int TLista_Retira ( TLista *pLista , int p, TItem *pX);19 void TLista_Imprime ( TLista * pLista );20 int Tlista_Get ( TLista *pLista , int p, TItem *pX);21 int Tlista_Tamanho ( TLista * pLista );

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (18)

Page 19: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY: Código Exemplo (.c)

1 void TLista_FazVazia ( TLista * pLista ) {2 pLista -> primeiro = INICIO ;3 pLista -> ultimo = pLista -> primeiro ;4 }56 int TLista_EhVazia ( Tlista * pLista ) {7 return (pLista -> ultimo == pLista -> primeiro );8 }910 int TLista_Insere ( Tlista *pLista , TItem x) {11 if(pLista -> ultimo == MaxTam )12 return 0; /* lista cheia */13 pLista ->item[pLista -> ultimo ++] = x;14 return 1;15 }

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (19)

Page 20: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY: Código Exemplo (.c)

17 int TLista_Retira ( Tlista *pLista , int p, TItem *pX) {18 if( LEhVazia ( pLista ) || p >= pLista -> ultimo )19 return 0;2021 int cont;22 *pX = pLista ->Item[p];23 pLista ->ultimo --;24 for(cont = p+1; cont <= pLista -> ultimo ; cont ++)25 pLista ->item[cont -1] = pLista ->item[cont ];26 return 1;27 }2829 void TLista_Imprime ( Tlista * pLista ) {30 int i;31 for(i = pLista -> primeiro ; i < pLista -> ultimo ; i++)32 printf ("%d\n", pLista ->item[i]. chave );33 }

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (20)

Page 21: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por ARRAY

TAD Lista: Implementação por ARRAY

VantagensEconomia de memória (apontadores implícitos).

Acesso a qualquer elemento da lista é feito em tempo O(1).

DesvantagensCusto para inserir itens da lista pode ser O(n).

Custo para retirar itens da lista pode ser O(n).

Quando não existe previsão sobre o crescimento da lista, oarray que define a lista deve ser alocado de forma dinâmica.

Pode ser necessária a realocação do array.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (21)

Page 22: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conteúdo

1 Introdução

2 TAD Lista

3 Implementação por ARRAY

4 Implementação por PONTEIRO

5 Conclusão

6 Exercícios

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (22)

Page 23: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Implementação por PONTEIRO

Qual o principal problema de utilizar array para implementarlistas?

E se a lista aumentar e depois diminuir drasticamente detamanho?

Solução: Listas Encadeadas!!!.

O que é?Implementação de uma lista utilizando apenas ponteiros.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (23)

Page 24: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada

Características:Tamanho da lista não é pré-definido.

Cada elemento aponta para o próximo.

Elementos não estão contíguos na memória (a alocação édinâmica).

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (24)

Page 25: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: Elementos

Elemento da lista:Armazena as informações sobre cada elemento.

Aponta para o próximo elemento.

Assim, é definido como uma estrutura que possui:Campos representando as informações do elemento.

Ponteiro para o próximo elemento.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (25)

Page 26: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: Elementos

Uma lista pode ter uma célula cabeça, antecedendo oprimeiro elemento.

Pode possuir também um apontador para o último elemento.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (26)

Page 27: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

Lista Encadeada COM cabeça: Estruturas básicas

1 typedef struct {2 /* Componentes de um item: "info" */3 } TItem ;45 typedef struct celula {6 struct celula * pProx ;7 TItem item;8 } TCelula ;910 typedef struct {11 TCelula *pPrimeiro , * pUltimo ;12 } TLista ;

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (27)

Page 28: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: Criar Lista Vazia

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (28)

Page 29: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO de Novos Elementos

3 opções de posição onde se pode inserir:Primeira posição.

Última posição.

Após um elemento E.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (29)

Page 30: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO na Primeira Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (30)

Page 31: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO na Primeira Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (30)

Page 32: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO na Primeira Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (30)

Page 33: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO na Última Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (31)

Page 34: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO na Última Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (31)

Page 35: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO na Última Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (31)

Page 36: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO Após o Elemento E

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (32)

Page 37: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO Após o Elemento E

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (32)

Page 38: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: INSERÇÃO Após o Elemento E

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (32)

Page 39: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA de Elementos

3 opções de posição onde se pode retirar:Primeira posição.

Última posição.

Um elemento E.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (33)

Page 40: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA na Primeira Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (34)

Page 41: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA na Primeira Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (34)

Page 42: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA na Primeira Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (34)

Page 43: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA na Última Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (35)

Page 44: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA na Última Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (35)

Page 45: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA na Última Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (35)

Page 46: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA na Última Posição

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (35)

Page 47: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA do Elemento E

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (36)

Page 48: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA do Elemento E

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (36)

Page 49: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA do Elemento E

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (36)

Page 50: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Implementação por PONTEIRO

TAD Lista: Lista Encadeada: RETIRADA do Elemento E

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (36)

Page 51: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conteúdo

1 Introdução

2 TAD Lista

3 Implementação por ARRAY

4 Implementação por PONTEIRO

5 Conclusão

6 Exercícios

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (37)

Page 52: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conclusão

Conclusão

Nesta aula tivemos o primeiro contato com a estrutura dedados Lista.

Este tópico é muito importante para o entendimento dasestruturas de dados que virão a seguir.

Próxima aula: Lista (Parte 2) – Implementação de listaencadeada (por ponteiro).

Dúvidas?

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (38)

Page 53: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Conteúdo

1 Introdução

2 TAD Lista

3 Implementação por ARRAY

4 Implementação por PONTEIRO

5 Conclusão

6 Exercícios

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (39)

Page 54: BCC202 - Estrutura de Dados I - Aula 08: Listas (Parte 1)parte_1)_(v2).pdf · Introdução TADLista ImplementaçãoporARRAY ImplementaçãoporPONTEIRO Conclusão Exercícios Conteúdo

Introdução TAD Lista Implementação por ARRAY Implementação por PONTEIRO Conclusão Exercícios

Exercícios propostos

Exercício 01

Implemente um TAD Lista utilizando Array, acrescentando asseguintes operações ao conjunto de operações vistos nesta aula:

Concatenação de duas listas.

Divisão de uma lista em duas.

Cópia de uma lista.

Pesquisa por um elemento na lista.

BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) (40)