quinta-feira, 7 de novembro de 2013

2013/2-AED-2013.11.01: TAD Lista - Código Fonte em C

// 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