Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou iniciando a programação em C na faculdade e estou aprendendo filas e pilhas e meu professor não é dos melhores então estou com muitas duvidas, baseado em um modelo que achei na net eu criei esses 2 programas que devem ler 5 numeros e depois exibi los, agora vem as duvidas :
Neste programa eu só consigo imprimir na tela o primeiro valor da pilha o que eu fiz de errado ?
Este é o conceito certo de pilha ? Eu não deveria usar push e pop ?
Pilha
#include <stdio.h>
main()
{
typedef struct no
{int num;
struct no *proximo;
}tipoNo;
tipoNo *topo, *novo, *atual;
int a;
int i;
/* inclui primeiro registro na pilha */
for (i=1;i<6;i++){
printf("digite um numero: ");
scanf("%d",&a);
novo = malloc(sizeof(tipoNo));
novo->num = a;
novo->proximo = NULL;
topo = novo;
}
/* exibe os registros da pilha */
atual = topo;
while (atual != NULL){
printf("\n numero = %d ",atual->num);
atual=atual->proximo;
}
getch();
}
Fila
Esse código aparetemente funcionou mas se vocês pudessem dar uma olhada pra ver se está certo.
A mesma duvida do outro exemplo é o conceito certo de fila e eu não precisaria usar insert e remove ?
#include "stdio.h"
#include <stdlib.h>
main()
{ typedef struct no
{int num;/ campo para os dados /
struct no proximo;/ ponteiro para a proxima celula */
}tipoNo; / nome do novo tipo de estrutura /
tipoNo *inicio, *novo, *atual;
int i;
int a;
inicio = atual = NULL;
for (i=1;i<6;i++)
{ novo = malloc(sizeof(tipoNo));
printf("digite um numero: ");
scanf("%d",&a);
novo->num = a;
novo->proximo=NULL;
if (inicio == NULL)
inicio = novo;
else
atual->proximo = novo;
atual = novo;
}
/* exibe a lista */
atual = inicio;
while (atual != NULL)
{ printf("\n numero = %d ",atual->num);
atual=atual->proximo;
}
getch();
}
Desculpem colocar uma duvida tão iniciante aqui, mas é que eu tenho um professor muito ruim e eu já pesquisei bastante material se vocês pudessem dar uma olhada e dar sugestões de como mudar o código ou de material de apoio ficaria muito agradecido.
Carregando comentários...