Buscar

RESPOSTA LISTA

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 5 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

Universidade Estácio de Sá
ESTRUTURA DE DADOS
Nome: Kásio Eduardo Martins
Matricula: 201503522784 
Profº: Robson Cunha
Cabo Frio, 04 de Outubro de 2015.
1)
void RemoveMult7(pilha &P, pilha &K){
 int cont=0,aux;
 
	for (int i=P.topo; i>=0; i--){
 if (P.memo[P.topo] % 7 == 0){
		 aux = P.memo[P.topo];
		 P.topo--;
		 cout<<"\n\tREMOVEU: "<<aux;
		 cont++;	
		}
 else{
 K.topo++;
 K.memo[K.topo] = P.memo[P.topo];
 P.topo--;
 }
 }
 for(int i=K.topo; i>=0; i--){
 P.topo++;
 P.memo[P.topo] = K.memo[K.topo];
 K.topo--;
 }
 if(cont == 0) 
 cout<<"\n\tNENHUM MULTIPLO DE 7!\n";
}
2)
void leitura(cadastro VET[]){
 for (int i=0; i<MAX; i++){
 cout<<"\n\n\tINSCRICAO: ";
 cin>>VET[i].inscricao;
 float soma =0;
		for (int j=0; j<4; j++){
		cout<<"\n\tDIGITE A NOTA "<<j+1<<" DA INSCRICAO "<<VET[i].inscricao<<" : ";
		cin>>VET[i].nota[j];
		soma += VET[i].nota[j];
			}
 VET[i].media = (soma/4);
 cout<<"\n\tINSCRICAO "<<VET[i].inscricao<<" MEDIA: " <<VET[i].media;
 }
}
void ordenada(cadastro VET[]){
	cadastro AuxCad[MAX];		
		for (int i=0; i<MAX-1; i++){
	 for(int j=i+1; j<MAX; j++){
	 if (VET[i].media > VET[j].media){
	 	AuxCad[i] = VET[i];
	 	VET[i] = VET[j];
	 	VET[j] = AuxCad[i];
				}
 }
		}
}
3)
int Vazia(fila F){
	return (F.fim == -1);
}
int Cheia(fila F){
	return (F.fim == MAX-1);
}
void Enfileirar(fila &F, int Z){
	F.fim++;
	F.memo[F.fim] = Z;
	cout<<"\n\tSUCESSO!\n";	
	
}
void Preferencial(fila &F, int Z){
	cout<<"\n\tQUAL O VALOR DO PREFERENCIAL?: ";
	cin>>Z;
	F.fim++;
		for (int i=F.fim;i>=0; i--){
			F.memo[i+1] = F.memo[i];
		}
	F.memo[0] = Z;
	cout<<"\n\tINSERIDO COM SUCESSO!\n";
}
void Inserirfurao(fila &F, int x, int pos){
	cout<<"\n\tVALOR: ";
	cin>>x;
	F.fim++;
		for (int i=F.fim; i>=pos; i--){
			F.memo[i+1] = F.memo[i];
		}
		F.memo[pos] = x;
		cout<<"\n\tFURAO INSERIDO!\n";
}
int main(){
	
	fila F;
	F.fim = -1;
	int opc,x,pos;
	while(opc!=3){
		
		cout<<"\n\t1 - INSERIR NO FIM DA FILA";
		cout<<"\n\t2 - FURA FILA NA POSICAO";
		cout<<"\n\t3 - PREFERENCIAL";
		cin>>opc;
			switch(opc){
				case 1:
						if (Cheia(F))
							cout<<"\n\tFILA CHEIA";
						else
							cout<<"\n\tDIGITE O VALOR: ";
							cin>>x;
							Enfileirar(F,x);
						break;
				case 2:
						if (Cheia(F))
 cout<<"\n\tFILA CHEIA"<<endl;
 else
 {
 if (Vazia(F))
 {
 	cout<<"\n\tVALOR: ";
 cin>>x;
 Enfileirar(F,x);
 }
 else if (Cheia(F) == 0 && Vazia(F) == 0)
 {
 cout<<"\n\tDIGITE A POSICAO PARA FURAR: "<<"\n\n";
 for(int i = 0; i <=F.fim; i++){
 cout<<"\t["<<i<<"] ";
 }
 cout<<"\n\tPOSICAO:";
 cin>>pos;
 if (pos > F.fim)
 {
 cout<<"\n\t Valor: ";
 cin>>x;
 Enfileirar(F,x);
 }
 else
 Inserirfurao(F,pos,x);
 }
 }
 						break;
				case 3: 
					cout<<"\n\tPREFERENCIAL\n";
							if(Cheia(F))
								cout<<"\n\tFILA CHEIA!\n";
							else
								Preferencial(F,x);
						break;
				default: 
						cout<<"\n\tDIGITE UMA OPC VALIDA";
			}
	}
}
4)
void Preferencial(fila &F, int x){
int aux;
	cout<<"\n\tValor: ";
	cin>>x;
		if (F.fim == MAX){
			F.fim=0;
 }
		F.fim++;
		F.total++;
		aux = x;
		for(int i = F.fim; i >= F.com; i--){
			F.memo[i] = F.memo[i-1];
		}
		F.memo[F.com] = aux;
}
 
void RemoverImpar(fila &F){
		for (int i=F.com; i<=F.fim; i++){
			if (F.memo[i] % 2 != 0){
				cout<<"\t"<<F.memo[i];
				for (int j=i; j<=F.fim; j++){
					F.memo[j]=F.memo[j+1];
					i=F.com;
				}
				F.total--;
			}
		}
			if (F.memo[F.com] % 2 != 0){
				cout<<"\t"<<F.memo[F.com];
				F.memo[F.com]=F.memo[F.com+1];
				F.memo[F.com+1]=F.memo[F.com+2];
				F.total--;
			}
}
5) #include "iostream"
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
int const MAX = 50;
using namespace std;
struct pilha{
 int topo;
 int memo[MAX];
};
int Push(pilha &P, char x){
 P.topo++;
 P.memo[P.topo] = x;
}
int Pop(pilha &P){
 P.topo--;
 return P.memo[P.topo];
}
string Verifica(char x[], pilha &P){
	int t = strlen(x),i = 0;
	 while(i < t){
	 char seq = x[i];
	 if (seq == ')' && P.memo[P.topo]=='(' || seq ==']' && P.memo[P.topo] == '[' || seq == ']' || seq == ')')
	 Pop(P);
	 if (seq == '(' || seq == '[')
	 Push(P, x[i]);
			i++;
	 }
 if (P.topo != -1)
 return "\n\tERRO!";
 else
 return "\n\tCORRETO";
 }
int main()
{
 pilha P;
 P.topo = -1;
 char x[50];
 cout<<"\n Digite a expressao:";
	fflush(stdin);
	gets(x);
	cout<<Verifica(x,P);
}

Outros materiais