fork(7) download
  1. /*
  2. Implementação de pilha
  3. Autor: Benjamin Grando Moreira
  4. */
  5.  
  6. #include <iostream>
  7. #define tamanho 5
  8. using namespace std;
  9.  
  10. //define a estrutura que será a fila
  11. //a estrutura armazena a indicação do inicio e final da fila e um vetor com os itens (valores) da fila
  12. typedef struct{
  13. int ini = 0;
  14. int fim = 0;
  15. int item [tamanho] ;
  16. } FILA;
  17.  
  18. //retorna se a fila está vazia ou não
  19. bool filaVazia(FILA p){
  20. if(p.ini == p.fim) {
  21. return true;
  22. } else {
  23. return false;
  24. }
  25. }
  26.  
  27. //retorna se a fila está cheia ou não
  28. bool filaCheia(FILA p) {
  29. int tam = sizeof(p.item)/sizeof(int); //determina o tamanho do vetor
  30.  
  31. if (p.fim < tam) {
  32. return false;
  33. } else {
  34. return true;
  35. }
  36. }
  37.  
  38. //adiciona valor na fila
  39. void enfilera(FILA &p, int x){
  40. p.item[p.fim++] = x;
  41. }
  42.  
  43. //remove valor da fila
  44. int desenfilera(FILA &p){
  45. return (p.item[p.ini++]) ;
  46. }
  47.  
  48. //mostra os valores armazenados na fila
  49. void mostraFila(FILA p) {
  50. cout << "Valores da fila: ";
  51. for (int i = p.ini; i < p.fim; i++) {
  52. cout << p.item[i] << " ";
  53. }
  54. cout << "\n";
  55. }
  56.  
  57.  
  58. //Código para testar a implementação
  59. int main(){
  60. FILA s; //criar a fila
  61.  
  62. //Verificar que a fila está vazia
  63. if(filaVazia(s)) {
  64. cout<<"A fila esta vazia."<<endl;
  65. } else {
  66. cout<<"A fila nao esta vazia."<<endl;
  67. }
  68.  
  69. //Enfilera valor e verifica se a fila está vazia
  70. enfilera(s,10);
  71. if(filaVazia(s)) {
  72. cout<<"A fila esta vazia."<<endl ;
  73. } else {
  74. cout<<"A fila nao esta vazia."<<endl;
  75. }
  76.  
  77. //Insere 3 elementos na fila
  78. enfilera(s,20);
  79. enfilera(s,30);
  80. enfilera(s,40);
  81.  
  82. //Mostra os valores da fila
  83. mostraFila(s);
  84.  
  85. //Verifica que a fila está cheia
  86. if(filaCheia(s)) {
  87. cout<<"A fila esta cheia."<<endl;
  88. } else {
  89. cout<<"A fila nao esta cheia."<<endl;
  90. }
  91.  
  92. //Enfilera valor e verifica se a fila esta cheia
  93. enfilera(s,50);
  94. mostraFila(s);
  95. if(filaCheia(s)) {
  96. cout<<"A fila esta cheia."<<endl;
  97. } else {
  98. cout<<"A fila nao esta cheia."<<endl;
  99. }
  100.  
  101. //Desempilha e mostrar o valor desempilhado
  102. cout<<"Valor removido da fila: "<< desenfilera(s) <<endl;
  103.  
  104. mostraFila(s);
  105.  
  106. if(filaCheia(s)) {
  107. cout<<"A fila esta cheia."<<endl;
  108. } else {
  109. cout<<"A fila nao esta cheia."<<endl;
  110. }
  111.  
  112. return 0;
  113. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
A fila esta vazia.
A fila nao esta vazia.
Valores da fila: 10 20 30 40 
A fila nao esta cheia.
Valores da fila: 10 20 30 40 50 
A fila esta cheia.
Valor removido da fila: 10
Valores da fila: 20 30 40 50 
A fila esta cheia.