Buscar

aula5 ED2

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Fila Circular
#include <iostream>
using namespace std;
const int MAX = 3;
struct fila{
 int com,fim,total;
 int memo[MAX];
};
int menu(){
int opc;
cout<<"\n1.Enfileirar";
cout<<"\n2.Desinfileirar";
cout<<"\n3.Listar";
cout<<"\n4.Preferencial";
cout<<"\nInsira a acao desejada.\n";
cin>>opc;
system("cls");
return opc;
}
int Cheia(fila F){
	if(F.total==MAX)
		return 1;
	else
		return 0;
}
int Vazia(fila F){
	if(F.total==0)
		return 1;
	else
		return 0;
}
void Enfileirar(fila &F,int x){
 F.fim++;
 if(F.fim==MAX)
 F.fim=0;
 F.memo[F.fim]=x;
 F.total++;
}
int Desinfileirar(fila &F){
 int aux;
 aux = F.memo[F.com];
 F.com++;
 if(F.com==MAX)
 F.com=0;
 F.total--;
 return aux;
}
void Listar(fila F){
 do{
 cout<<"\nValor = "<<Desinfileirar(F)<<endl;
 }while(!Vazia(F));
}
void Preferencial(fila &F, int x){
 F.com--;
 if(F.com==-1)
 F.com=MAX-1;
 F.memo[F.com]=x;
 F.total++;
}
int main()
{
 fila F;
 int opc, x, pos;
 F.fim=-1;
 F.total = F.com = 0;
 do{
 opc = menu();
 switch(opc){
 case 1://Enfileirar
 if(Cheia(F))
 cout<<"\nFila Cheia.";
 else{
 cout<<"\nValor = ";
 cin>>x;
 Enfileirar(F,x);
 }
 break;
 case 2://Desinfileirar
 if(Vazia(F))
 cout<<"\nFila Vazia.";
 else
 cout<<"\nValor desinfeilerado "<<Desinfileirar(F);
 break;
 case 3://Listar
 if(Vazia(F))
 cout<<"\nFila Vazia.";
 else{
 cout<<"\nListando\n";
 Listar(F);
 }
 break;
 case 4://Preferencial
 if(Cheia(F))
 cout<<"\nFila Cheia.";
 else{
 cout<<"\nValor = ";
 cin>>x;
 Preferencial(F,x);
 }
 break;
 }
 }while(opc!=5);//Para sair
}
*********************************************
Lista Sequencial(Ordenada)
#include <iostream>
using namespace std;
const int MAX=6;
struct lista{
 int fim;
 int memo[MAX];
};
int menu(){
int opc;
cout<<"\n1.Inserir";
cout<<"\nInsira a acao desejada.\n";
cin>>opc;
system("cls");
return opc;
}
int cheia(lista L){
 return(L.fim==MAX-1);
}
int vazia (lista L){
 return(L.fim==-1);
}
void Inserir(lista &L, int x){
 if(x<L.memo[0]){
 for(int i=L.fim;i>=0;i--)
 L.memo[i+1]=L.memo[i];
 L.memo[0]=x;
 }
 else{
 int i = 0;
 while(i<=L.fim && x>L.memo[i])i++;
 for(int j=L.fim;j>=i;j--){
 L.memo[j+1]=L.memo[j];
 }
 L.memo[i]=x;
 }
}
void Remover(lista L, int pos){
 for(int i=pos;i<=L.fim;i++)
 L.memo[i]=L.memo[i+1];
 L.fim--;
}
int busca(lista L, int x){
 for(int i=0;i<=L.fim;i++){
 if(x==L.memo[i]){
 return i;
 }
 }
 return -1;
}
int main(){
 lista L;
 int x,opc;
 L.fim=-1;
 do{
 opc = menu();{
 switch(opc){
 case 1://Inserir X
 if(cheia(L))
 cout<<"\nLista Cheia!";
 else{
 cout<<"Valor = ";
 cin>>x;
 if(busca(L,x)==-1)
 Inserir(L,x);
 else{
 cout<<"Valor = ";
 cin>>x;
 if(busca(L,x)==-1)
 Inserir(L,x);
 else
 cout<<"Numero já existe!";
 }
 }
 break;
 case 2://Remover X
 if(vazia(L))
 cout<<"\nLista Vazia!";
 else{
 cout<<"\nQual numero?";
 cin>>x;
 int pos = busca(L,x);
 if(pos==-1)
 cout<<"\nNumero nao encontrado!";
 else
 Remover(L,pos);
 }
 break;
 }
 }
 }while(opc!=5);
}
---------------------------------------------------------------------------------
Menu
1-Inserir
2-Remover
3-Listar
4-Buscar pela Matrícula(informar todos os dados)
5-Alterar um dos campos pela matrícula
6-Calculo da Média dos Salários
7-Sair
Struct cad{
int mat;
char nome[30];
float sal;
};
Struct lista{
int fim;
cad memo[MAX];
};
obs:ordenada pela matrícula

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando