// TAD LISTA
// Tipos de dados
typedef int TipoChave;
struct T_Item{
TipoChave Chave;
};
typedef struct T_Item TipoItem;
typedef struct T_Celula * TipoApontador;
struct T_Celula{
TipoItem Item;
TipoApontador Prox;
};
typedef struct T_Celula TipoCelula;
struct T_Lista{
int Tamanho;
int Capacidade;
TipoApontador Primeiro, Ultimo;
};
typedef struct T_Lista TipoLista;
// Cabeçalho das operações
// inserir uma chave na lista
void InserirLista(TipoLista * Lista, TipoItem item);
// retirar uma chave da lista
void RetirarLista(TipoLista * Lista, TipoItem * item);
// pesquisar por uma chave na lista
int PesquisarLista(TipoLista Lista, TipoItem item);
// verificar se estah cheia
int ListaCheia(TipoLista Lista);
// verificar se estah vazia
int ListaVazia(TipoLista Lista);
// criar uma nova lista
void CriarLista(TipoLista * Lista, int capacidade);
// obter o tamanho da lista
int TamanhoLista(TipoLista Lista);
// imprimir a lista
void ImprimirLista(TipoLista Lista);
// Implementação das operações
void CriarLista(TipoLista * Lista, int capacidade){
// 1) criar a celula cabeça
Lista->Primeiro = (TipoApontador) malloc(
sizeof( TipoCelula));
// 2) atualizar os apontadores Prim. e Ult.
Lista->Ultimo = Lista->Primeiro;
// 3) atualizar o tamanho (zero) e capacidade (parametro)
Lista->Tamanho = 0;
Lista->Capacidade = capacidade;
// 4) atualizar o apontador prox da celula cabeca
Lista->Primeiro->Prox = null;
}
Nenhum comentário:
Postar um comentário