Ir para conteúdo
Fórum Script Brasil

Jorge Lima

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que Jorge Lima postou

  1. Ninguém? Este exercício é tão difícil assim?!
  2. Ainda não comecei com listas encadeadas. Na verdade isto é um exercício, e de início é com vetor mesmo. O dilema é fazer a variável i sempre marcar a primeira posição da fila. E quando for remover, remove a posição i. E o j ser a variável que ia contando, até chegar no limite do vetor. Alguma solução?
  3. Bom dia, amigos. Comecei a utilizar pilhas e filas, mas surgiu uma dúvida. Criei este programinha que insere dados numa fila, mas a função remover (que deveria remover sempre o primeiro elemento da estrutura) não consigo fazê-lo funcionar corretamente. Está removendo como pilha, ou seja, o último a ser inserido é o primeiro a ser removido. Tem alguma solução pra mim? Vou postar meu código logo abaixo, desculpem-me se postar de modo incorreto, pois nunca criei tópicos aqui. ________________________________________________________________________ #include <stdio.h> #include <stdlib.h> #define N 5 int i = -1; int j = -1; int k; int final; int fila[N]; int inserir(int dado); int remover(); int verifica_prox(); int inicializa_fila(); int inserir(int dado) { if (i==N-1) { printf("\n Todas as posicoes da fila estao ocupadas \n"); return(0); } else { if (i==-1) {i=0;} fila[j+1] = dado; j = j+1; i = i+1; return(1); } } int remover() { if (i==-1) { printf("\nA fila esta vazia. não existe elemento no topo!!!\n"); return(-1); } else { final = fila[i]; fila[i]=-1; j = j - 1; i = i - 1; return (final); } } int verifica_prox() { if (i==-1) { printf("\nA fila esta vazia. não existe elementos!!!\n"); return(-1); } else return(fila[i]); } int inicializa_fila() { i = 0; j = 0; for (j=0; j<N; j++) fila[j] = -1; } int main(int argc, char *argv[]) { int x, opc, res; inicializa_fila(); do { printf("\n\n********* MENU DE OPCOES - FILA ***********\n"); printf("\n1 - Inserir na Fila"); printf("\n2 - Remover da Fila"); printf("\n3 - Verificar o Próximo Elemento da Fila"); printf("\n4 - Mostrar o Conteudo da Fila"); printf("\n5 - Sair do programa\n\n"); printf("Digite a opcao escolhida => "); scanf("%d", &opc); switch (opc) { case 1: printf("\nDigite o valor do elemento a inserir => "); scanf("%d", &x); res = inserir(x); if (res==1) printf("\nElemento inserido na fila."); printf("%d", fila[i]); else printf("Elemento não inserido. fila Cheia."); break; case 2: res = remover(); if (res==-1) printf("\nFila vazia.\n"); else printf("\nElemento removido da fila com sucesso \n"); final = verifica_prox(); break; case 3: res = verifica_prox(); if (res ==-1) printf("\nFila vazia.\n"); else printf("\nElemento do topo da fila => %d \n",res); break; case 4: if (i==-1) printf("\nFila Vazia!"); else { for (j=0;j<=i; j++) printf("Elemento %d da fila = %d\n", j+1, fila[j]); } break; case 5: break; default: printf("\nDigite valores entre 1 e 5.\n"); break; } } while (opc!= 5); system("PAUSE"); return 0; } ______________________________________________________________________________________
×
×
  • Criar Novo...