TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

As Filas e Pilhas

Por:   •  6/10/2022  •  Trabalho acadêmico  •  878 Palavras (4 Páginas)  •  134 Visualizações

Página 1 de 4

Explique a diferença entre uma pilha e uma fila, de exemplos

Resposta: Fila são estruturas de dados onde o primeiro elemento a ser inserido, será também o primeiro a ser retirado. Desta forma, serão adicionados elementos no fim e removê-los pelo início. A estrutura de dados fila segue um padrão conhecido como FIFO (first-in first-out), onde o primeiro a entrar é o primeiro a sair.

Já a pilha é uma estrutura de dados linear na qual os elementos podem ser inseridos e excluídos apenas de um lado da lista, chamado de topo . Uma pilha segue o princípio LIFO (Last In First Out), ou seja, o elemento inserido no último é o primeiro elemento a sair. A inserção de um elemento na pilha é chamada de operação push e a exclusão de um elemento da pilha é chamada de operação pop. Na pilha, sempre acompanhamos o último elemento presente na lista com um ponteiro chamado top.

Escolha e construa um algoritmo para implementar o atendimento em uma secretaria escolar

Resposta:

#include <stdio.h>

struct aluno {

char nome[50];

char curso[50];

int semestre;

int ra;

struct aluno *proximo;

} typedef item;

struct {

item *primeiro;

} typedef fila;

void adicionar(fila *f){

item *novo = (item*)malloc(sizeof(item));

printf("\nInforme o nome:");

scanf("%s", &novo->nome);

printf("\nInforme o curso, semestre e ra:");

scanf("%s %i %i", &novo->curso, &novo->semestre, &novo->ra);

novo->proximo = NULL;

if(filaVazia(f)){

f->primeiro = novo;

} else {

item *aux = f->primeiro;

while(aux->proximo != NULL){

aux = aux->proximo;

}

aux->proximo = novo;

}

printf("\nATENDIMENTO INICIADO !!! %x", novo);

}

void listar(fila *f){

if(filaVazia(f)){

printf("\nFILA VAZIA!!!");

} else {

item *aux = f->primeiro;

do{

printf("\nNOME=%s, CURSO=%s, SEMESTRE=%i, RA=%i", aux->nome,

aux->curso, aux->semestre, aux->ra);

aux = aux->proximo;

}while(aux != NULL);

}

}

void remover(fila *f){

if(filaVazia(f)){

printf("\nFILA VAZIA!!!");

} else {

item *aux = f->primeiro;

f->primeiro = aux->proximo;

printf("\nREMOVER NOME=%s, CURSO=%s, SEMESTRE=%i, RA=%i", aux->nome,

aux->curso, aux->semestre, aux->ra);

free(aux);

}

}

int filaVazia(fila *f){

return (f->primeiro==NULL);

}

int main()

{

fila f1 = {NULL};

adicionar(&f1);

adicionar(&f1);

adicionar(&f1);

listar(&f1);

remover(&f1);

...

Baixar como (para membros premium)  txt (3.8 Kb)   pdf (43.8 Kb)   docx (9.8 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com