Você está na página 1de 8

Cincia da Computao

Estruturas de Dados Bsicas


Prof. Vincius Alves

L1

L2

L3

...

Ln-1 Ln

TADs Tipos Abstratos de Dados


Um Tipo abstrato de dados (TAD ) consiste em uma estrutura de dados e um conjunto de operaes que se definem sobre essa estrutura; Tais estruturas podem ser implementadas com alocao esttica (definida em tempo de compilao) e dinmica (definida em tempo de execuo); Estruturas estudadas :Listas, Pilhas, Filas e rvores; 2

Listas estticas
Consistem em um conjunto de elementos de mesmo tipo armazenados em posies contguas de memria (vetores);
X1
1 elemento da lista

X2
2

...

Xn
ltimo elemento da lista

...
MaxTam

Conjunto de operaes:
Procedimentos: Impresso; Iniciao, Insero, Remoo, Busca,
3

Funes: Vazia, Cheia.

Estrutura da Lista Esttica


#define INICIOARRANJO 1 #define MAXTAM 1000 typedef int TipoApontador; typedef int TipoChave; struct TipoItem { TipoChave Chave; / outros componentes / }; struct TipoLista { TipoItem Item [ MAXTAM ] ; TipoApontador Primeiro , Ultimo ; }; Os itens so armazenados em um array de tamanho suciente para armazenar a lista. O campo ltimo aponta para a posio seguinte a do ltimo elemento da lista. A constante MaxTam dene o tamanho mximo permitido para a 4 lista.

Operaes com Listas estticas


void FLVazia(TipoLista *Lista){ Lista->Primeiro = INICIOARRANJO ; Lista->Ultimo = Lista->Primeiro; } int Vazia(TipoLista Lista){ return (Lista.Primeiro == Lista.Ultimo); } void Insere (TipoItem x , TipoLista * Lista ) { if(Lista->Ultimo > MAXTAM) printf ( " Lista esta cheia \n" ) ; else{ Lista-> Item [Lista->Ultimo-1] = x ; Lista->Ultimo++; } }

Operaes com Listas estticas


void Retira (TipoApontador p , TipoLista *Lista , TipoItem * Item) { int Aux; if(Vazia(*Lista ) || p >= Lista->Ultimo ){ printf("Erro : Posicao nao existe \n") ; return ; } *Item = Lista -> Item [p - 1]; Lista -> Ultimo--; for (Aux = p;Aux<Lista->Ultimo; Aux++) Lista->Item[Aux-1]=Lista->Item[Aux] ; }

Operaes com Listas estticas


void Imprime( TipoLista Lista ) { int Aux; for (Aux = Lista.Primeiro 1; Aux <= ( Lista.Ultimo 2); Aux++) p r i n t f ( "%d\n" ,Lista.Item[Aux].Chave) ; }

Exerccios
Faa um programa em C utilizando os mdulos apresentados anteriormente. O programa deve realizar o cadastro de livros, conforme estrutura Lista estudada:
Livro int isbn; char titulo[50]; char autor[50];

Elabore uma funo que receba uma lista e o ISBN de um livro e retorne a posio em que o livro se encontra na lista. Elabore uma funo FuraLista que insira um livro em qualquer posio da lista. Lembre-se que a insero de um item no incio ou no meio de uma lista implica no deslocamento de todos os outros itens.

Você também pode gostar