Buscar

ED_06_

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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;
			
		}
		
	}
	
}

Outros materiais