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); }

Entradas relacionadas: