tad - listas por arranjo com c
Post on 15-Jul-2015
132 Views
Preview:
TRANSCRIPT
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 1/8
Ciência da Computação
L1 L2 L3 ... Ln-1 Ln
s ru uras eDados
Básicas
Prof. Vinícius Alves
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 2/8
TADs – Tipos Abstratos de
Dados
uma estrutura de dados e um conjunto deoperações que se definem sobre essa
estrutura; Tais estruturas podem ser implementadas com
aloca ão estática definida em tem o de
compilação) e dinâmica (definida em tempo deexecução);
Estruturas estudadas :Listas, Pilhas, Filas eÁrvores; 2
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 3/8
Listas estáticas
Consistem em um con unto de elementos de mesmotipo armazenados em posições contíguas de memória(vetores);
X1 X2 ... Xn ...
1º elementoda lista
Últimoelemento
MaxTam2º
Conjunto de operações: Procedimentos: Iniciação, Inserção, Remoção, Busca,
Impressão;
Funções: Vazia, Cheia.
3
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 4/8
Estrutura da Lista Estática
#define INICIOARRANJO 1#define MAXTAM 1000
• Os itens sãoarmazenados em um
typedef int TipoApontador;typedef int TipoChave;
struct TipoItem {TipoChave Chave; / ∗ −−− outros componentes−−− ∗ /
array de tamanhosuficiente para armazenara lista.
• O campo Último apontapara a posição seguinte ado último elemento da
struct TipoLista {TipoItem Item [ MAXTAM ] ;TipoApontador Primeiro , Ultimo ;
};4
lista.
• A constante MaxTamdefine o tamanho máximopermitido para alista.
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 5/8
Operações com Listas
estáticasvoid 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++;}}
5
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 6/8
Operações com Listas
estáticasvoid 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] ;}
6
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 7/8
Operações com Listas
estáticasvoid 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) ;}
7
5/13/2018 TAD - Listas Por Arranjo Com C - slidepdf.com
http://slidepdf.com/reader/full/tad-listas-por-arranjo-com-c 8/8
Exercícios
• Faça um programa em C utilizando os módulos apresentados anteriormente.O programa deve realizar o cadastro de livros, conforme estrutura Lista
• Elabore uma função que receba uma lista e o ISBN de um livro e retorne a
Livro
int isbn;
char titulo[50];
char autor[50];
8
pos ç o em que o vro se encon ra na s a.
• Elabore uma função “FuraLista“ que insira um livro em qualquer posição dalista. Lembre-se que a inserção de um item no início ou no meio de uma listaimplica no deslocamento de todos os outros itens.
top related