Buscar

FilaLigada.h

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

#ifndef FILALIGADA_H_INCLUDED
#define FILALIGADA_H_INCLUDED
#include "pilha.h"
using namespace std;
struct Node{
 int info;
 Node *prox;
};
struct Fila{
 Node *inic;
 Node *fim;
 int c;
 Fila();
 bool insere(int x);
 int remover();
 int primeiro();
 bool FilaVazia();
 void mostraFila();
 //PILHA
 Pilha p;
 void convertefila();
 void ordenar();
 void situacaopilha();
};
Fila::Fila(){
 inic=NULL;
 fim=NULL;
 c=0;
}
bool Fila::FilaVazia(){
 return inic==NULL;
}
bool Fila::insere(int x){
 bool t=true;
 Node *aux=new Node;
 if(aux==NULL)t=false;
 else{
 aux->info=x;
 aux->prox=NULL;
 if(inic==NULL) inic=aux;
 else fim->prox=aux; fim=aux;
 }
 return t;
}
int Fila::primeiro(){
 return inic->info;
}
int Fila::remover(){
 int t=inic->info; //primeiro da fila
 Node *aux=inic;
 inic=inic->prox;
 if(inic==NULL) fim=NULL;
 delete aux;
 return t;
}
void Fila::mostraFila(){
 Node *aux=inic;
 c=0;
 while(aux!=NULL){
 c++;
 cout<<c<<": "<<aux->info<<endl;
 aux=aux->prox;
 }
}
void Fila::convertefila(){
 Node *aux=inic;
 if(!p.pilhaVazia()){
 p.limparpilha();
 }
 Node *aux2=inic;
 while(aux2!=NULL){
 int t=aux2->info;
 p.empilha(t);
 aux2=aux2->prox;
 }
 }
void Fila::ordenar(){
 convertefila();
 p.ordenapilha();
}
void Fila::situacaopilha(){
 p.mostrapilha();
 cout<<endl<<"------"<<endl<<"Qtde: "<<p.getQtde()<<endl;
 cout<<"Topo: "<<p.getTopo()<<endl;
}
#endif // FILALIGADA_H_INCLUDED

Teste o Premium para desbloquear

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

Continue navegando

Outros materiais