-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFila_exemplo.cpp
136 lines (103 loc) · 2.49 KB
/
Fila_exemplo.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <iostream>
#include<stdlib.h>
#include<stdio.h>
// constante que define a dimensao da fila
#define DIMENSAO 5
// Criando estrutura da fila
typedef struct{
int tamanho;
int item[DIMENSAO];
} FILA;
int menu();
void inicializar(FILA &f2);
void adicionar(FILA &f2, int item);
bool filacheia(FILA &f2);
bool filavazia(FILA &f2);
void mostrarfila(FILA &f2);
int removerfila(FILA &f2);
// funcao principal
int main(int argc, char** argv) {
FILA f; // f == variavel do tipo fila
inicializar(f); //inicializar fila (f)
int opcao;
do{
opcao = menu();
switch(opcao){
case 1:{
inicializar(f);
break;
}
case 2:{
int item;
printf("Digite um numero:\n");
scanf("%i", &item);
adicionar (f, item);
break;
}
case 3:{
mostrarfila(f);
break;
}
case 4:{
printf("item removido %i\n", removerfila(f));
break;
}
}
}while (opcao != 0);
return 0;
}
// inicializar a estrutura de fila
void inicializar(FILA &f2){ // ponteiro que aponta para f, tudo que esta em f2(ponteiro) esta passando para f & == declarou ponteiro * == declarou ponteiro na variavel
f2.tamanho = 0;
printf("Fila inicializada com sucesso!\n");
}
// criar a funcao adicionar
void adicionar( FILA &f2, int item){
if(filacheia(f2)){
printf("A fila esta cheia nao pode adicionar!\n");
} else {
f2.item[f2.tamanho] = item; // f2 que guarda tamanho fica com o valor de item sendo que f2 acessa item (f2.item)
f2.tamanho++;
printf("Adicionado %i a fila!\n", item);
}
}
bool filacheia(FILA &f2){
return (f2.tamanho == DIMENSAO); // já retorna um valor bool não precisa declara um if
}
bool filavazia(FILA &f2){
return (f2.tamanho == 0);
}
// criar a funcao mostrar fila
void mostrarfila(FILA &f2){
if(filavazia(f2)){
printf("A fila esta vazia!\n");
}else{
int i;
for(i = 0; i < f2.tamanho; i++){
printf("%i", f2.item[i]);
printf("\n");
}
}
}
// criar funcao remover da fila
int removerfila(FILA &f2){
int item = f2.item[0];
int i;
for(i = 1; i < f2.tamanho; i++){
f2.item[i - 1] = f2.item[i];
}
f2.tamanho--;
return item;
}
// menu de opcoes
int menu(){
int opcao;
printf("1-Inicializar Fila\n");
printf("2-Adicionar na Fila\n");
printf("3-Mostrar a Fila\n");
printf("4-Remover da Fila\n");
printf("0-Sair da Fila\n");
printf("Digite uma opcao\n");
scanf("%i", &opcao);
return opcao;
}