h2>Estruturas de Dados: Lista, Pilha e Fila em C
Classificado em Design e Engenharia
Escrito em em português com um tamanho de 3,8 KB.
Declaração das Estruturas
LISTA
#define m 10
struct lista { int n; char elem[m]; } L;
PILHA
#define m 10 struct Pilha { int topo, tamanho; char elem [m]; } P;
FILA
#define m 10 struct fila { int comeco, fim; char elem[m]; } F;
Inicialização – Função iniciar()
LISTA
void iniciar () { L.n = 0; }
PILHA
void iniciar () { P.topo = -1; P.tamanho = 0; }
FILA
void iniciar () { F.comeco = 0; F.fim = -1; }
Função Inserir
PILHA
void empilhar (char x) { if (P.topo == m -1)
printf ("PILHA CHEIA");
else { P.topo ++; P.elem [P.topo] = x; P.tamanho ++; } }
FILA
void inserir (char dado)
{ if (F.fim == m -1)
printf ("Fila cheia!!!");
else { F.fim++; F.elem[F.fim] = dado; } }
LISTA - Inserir em uma certa posição
void inserirPosicao (int k, char dado)
{ int i; if ((k < 0 || k > (L.n)) || (L.n > m-1))
printf ("ERRO! Fora dos limites");
else { for (i = L.n; i > k ; i--) { L.elem[i] = L.elem[i-1]; }
L.elem[k] = dado;
L.n++; }
Inserir no fim da lista
insereFinal (char dado)
{ if (L.n > m-1) printf ("ERRO !!!");
else { L.elem[L.n] = dado; L.n++; } }
Função Remover
LISTA
void remover (int k)
{ int i; if ((k < 0 || k > (L.n-1)) || (L.n > m-1))
printf ("ERRO! Fora dos limites");
else { for (i = k; i < L.n-1; i++){ L.elem[i] = L.elem[i+1]; } L.n--; }
PILHA
void desempilhar ()
{ if (P.topo == -1) printf ("PILHA VAZIA");
else { P.topo --; P.tamanho --; }
FILA
void remover ()
{ if (F.fim < F.comeco)
printf ("Fila vazia!!!"); else F.comeco++; }
Função Consultar, Acessar
LISTA
void acessar (int k)
{ char dado; if ((k<0 || k > (L.n-1)) || (L.n > m-1))
printf ("ERRO! Fora dos limites");
else { dado = L.elem[k];
printf("O dado é: %c", dado); } }
PILHA
void acessar ()
{ char dado; if (P.topo == -1)
{ printf ("PILHA VAZIA"); }
else { dado = P.elem [P.topo];
printf("O dado é: %c", dado); } }
FILA
void acessar ()
{ char dado; if (F.fim < F.comeco)
printf ("Fila vazia!!!");
else { dado = F.elem[F.comeco];
printf ("O dado é: %c", dado); } }
Função tamanho
LISTA
void tamanho ()
{ printf ("O tamanho é: %d", L.n); }
PILHA
void tamanho ()
{ printf ("O tamanho é: %d", P.tamanho); }
FILA
void tamanho ()
{ printf ("O tamanho é: %d", F.fim – F.comeco); }