fork(1) download
  1. #include <stdio.h>
  2.  
  3. #define MAX 5 // numero maximo de elementos na fila
  4.  
  5. // cria uma fila vazia
  6. int comeco = 0; // comeco da fila
  7. int tamanho = 0; // tamanho da fila (numero de elementos)
  8. int queue[MAX]; // vetor da fila
  9.  
  10. void inserir( int ); // inserir elementos no fim da fila
  11. void remover( void ); // remover elementos do comeco da fila
  12.  
  13. int main(void)
  14. {
  15. int i; // contador
  16.  
  17. inserir(1);
  18. inserir(10);
  19. inserir(100);
  20. inserir(1000);
  21. remover();
  22. inserir(6);
  23. remover();
  24. inserir(60);
  25.  
  26. //// mostra fila na tela ////
  27. for(i = 0; i < MAX; i++)
  28. printf("fila[%i] = %i\n", i, queue);
  29.  
  30. // system("pause"); // comente esta linha se for rodar no linux
  31. return ( 0 );
  32.  
  33. } // fim main
  34.  
  35.  
  36. void inserir( int elemento )
  37. {
  38. //// checa se a fila esta cheia ////
  39. if( tamanho == MAX )
  40. printf("\nfila cheia\n");
  41.  
  42. else {
  43. //// converte os valores virtuais (tamanho e comeco) para o valor real utilizando o operador modulo ////
  44. queue[ ((comeco + tamanho) % MAX) ] = elemento;
  45. //// incrementa tamanho da fila (elemento foi inserido) ////
  46. tamanho ++;
  47. }
  48.  
  49. } // fim funcao
  50.  
  51.  
  52. void remover(void)
  53. {
  54. //// checa se a fila esta vazia ////
  55. if( tamanho == 0 )
  56. printf("\nfila vazia\n");
  57.  
  58. else {
  59. //// apaga o primeiro elemento da fila deslocando o ponteiro do comeco para proximo elemento ////
  60. comeco ++;
  61. //// decrementa o contador de tamanho (um valor foi removido) ////
  62. tamanho --;
  63. }
  64.  
  65. } // fim funcao
  66.  
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
fila[0] = 134519072
fila[1] = 134519072
fila[2] = 134519072
fila[3] = 134519072
fila[4] = 134519072