Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE MAUÁ Curso de Informática para Negócios Mateus Silva Folego GRUPO 04 ESTRUTURA DE DADOS Lista de exercícios 06 Mauá – SP 2021 1.ª) Suponha a existência de uma pilha de inteiros “s” e uma fila de inteiros “q”. Desenhe a ilustração de s e q depois das seguintes operações: Push(s,3) Push(s,12) Enqueue(q,5) Enqueue(q,8) x=Pop(s) Push(s,2) Enqueue(q,x) Push(s,x) y=Top(s) Push(s,y) OPERAÇÃO ESTADO DA FILA RESULTADO ESTADO DA PILHA RESULTADO ------------------------ q:[] ------------------ s:[] ------------------------ Push(s,3) q:[] ------------------ s:[3] ------------------------ Push(s,12) q:[] ------------------ s:[3, 12] ------------------------ Enqueue(q,5) q:[5] ------------------ s:[3, 12] ------------------------ Enqueue(q,8) q:[5, 8] ------------------ s:[3, 12] ------------------------ x=Pop(s) q:[5, 8] ------------------ s:[3] 12 Push(s,2) q:[5, 8] ------------------ s:[3, 2] ------------------------ Enqueue(q,x) q:[5, 8, x] ------------------ s:[3, 2] ------------------------ Push(s,x) q:[5, 8, x] ------------------ s:[3, 2, x] ------------------------ y=Top(s) q:[5, 8, x] ------------------ s:[3, 2, x] X Push(s,y) q:[5, 8, x] ------------------ s:[3, 2, x, y] ------------------------ 2.ª) Considerar o programa de exemplo sobre Filas (menu.cpp) e adicionar: a) uma opção no menu que permita inverter o conteúdo da fila. b) uma opção que retorne o número de elementos existentes na fila circular. c) O primeiro elemento da fila d) O último elemento da fila #include <iostream> #include <stdlib.h> #include <Fila.h> #include <Pilha.h> using namespace std; int main(){ system("cls"); int elem, op, x, i, y, contador; struct queue q; setlocale(LC_ALL, ""); // Inicializa a fila inicFila(&q); // Loop principal: para sair, escolher a opção 4 while(op != 8){ op = 0; // Desenhando o menu principal system("cls"); cout << "FILA CIRCULAR"; cout << "\n\n(1) - Inserir um elemento na fila"; cout << "\n(2) - Remover um elemento da fila"; cout << "\n(3) - Imprimir a fila"; cout << "\n(4) - Inverter a fila"; cout << "\n(5) - Contar elementos da fila"; cout << "\n(6) - Exibir o primeiro elemento da fila"; cout << "\n(7) - Exibir o último elemento da fila"; cout << "\n(8) - Sair"; cout << "\n\nDigite a sua opção: "; cin >> op; while (op < 1 || op > 8){ cin >> op; } // Escolha switch(op){ case 1: if(filaCheia(&q) == 1){ cout << "A fila está cheia!"; } else{ system("cls"); cout << "\nInsira um valor: "; cin >> elem; insFila(&q, elem); } break; case 2: if(filaVazia(&q) == 1){ cout << "A fila está vazia!"; system("pause"); } else{ x = remFila(&q); cout << "Valor removido: " << x << endl; system("pause"); } break; case 3: if(filaVazia(&q) == 1){ cout << "A fila está vazia!"; system("pause"); } else{ y = guardainicio(&q); while(!filaVazia(&q)){ x = remFila(&q); cout << x << "" << endl; } retornainicio(&q,y); system("pause"); } break; case 4: if(filaVazia(&q) == 1){ cout << "A fila está vazia!"; system("pause"); } else{ struct Pilha pilha; int itemFila, itemPilha; IniPilha(&pilha); if (filaVazia(&q)==1) { cout<<endl <<"A fila esta vazia!!"; system("PAUSE"); } else { while (!filaVazia(&q)) { itemFila=remFila(&q); Push(&pilha, itemFila); } } while(pilhavazia(&pilha) == 0) { itemPilha = Pop(&pilha); insFila(&q, itemPilha); } cout<<endl <<"A fila foi invertida!"<< endl; system("PAUSE"); } break; case 5: if(filaVazia(&q) == 1){ cout << "A fila está vazia!"; system("pause"); } else{ y = guardainicio(&q); contador = 0; while(!filaVazia(&q)){ x = remFila(&q); contador++; } retornainicio(&q, y); cout << "A fila possui " << contador << " elementos\n"; system("pause"); } break; case 6: if(filaVazia(&q) == 1){ cout << "A fila está vazia!"; system("pause"); } else{ y = guardainicio(&q); x = remFila(&q); retornainicio(&q, y); cout << "O primeiro elemento é: " << x << endl; system("pause"); } break; case 7: if(filaVazia(&q) == 1){ cout << "A fila está vazia!"; system("pause"); } else{ y = guardainicio(&q); contador = 0; while(!filaVazia(&q)){ x = remFila(&q); } retornainicio(&q, y); cout << "O último elemento é: " << x << endl; system("pause"); } break; } } }
Compartilhar