#include<iostream.h>
struct record
{
int elem;
record * prec;
};
typedef record * P;
void trova (int el, P p, int & i, P & t);
void scambio(P & p1,P & p2);
void bouble(P & p1);
class pila
{ P p;
void copy(P & p2,const P p1);
void show(P p1);
P coda(P p1);
public:
pila() { p=0; } // inizializza facendo puntare il puntatore del
recorda 0
pila(const pila & p1);
~pila();
pila operator=(const pila & p1);
void push(int e);
void pop(int &e);
void top();
void topc();
int vuota();
int piena();
void clear();
void visualizza();
void visual();
void ricerca();
void ordpila();
void cancella();
};
void pila::show(P p1)
{ cout<<"\n Elemento "<<p1->elem;
}
P pila::coda(P p1)
{ if(p1->prec) p1= coda(p1->prec);
return p1;
/* if(!p1->prec)
{ cout<<"\n Elemento in coda ";
return p1;
}
else p=coda(p1->prec);
return p1;*/
}
void pila::topc()
{ P t;
t=coda(p);
show(t);
}
pila::pila(const pila & p1)
{ copy(p,p1.p);
}
pila::~pila() //Distruttore
{
clear();
}
pila pila:: operator=(const pila & p1)
{ clear();
copy(p,p1.p);
return *this;
}
void pila::copy(P & p2, const P p1)
{ if(p1)
{ p2=new record;
p2->elem=p1->elem;
copy(p2->prec,p1->prec);
}
else p2=0;
}
void pila::push(int e)
{
P q;
q= new record;
q->elem=e;
q->prec=p;
p=q;
}
void pila::pop(int & e)
{
if(p) {
e=p->elem;
P q;
q=p;
p=p->prec;
delete q;
}
}
void pila::top()
{ if(p)
{
cout<<"\n L'elemento : "<<p->elem;
}
else cout<<"\n Non ci sono elementi nella pila ";
}
int pila::vuota()
{
return(p==0);
}
int pila::piena()
{
return(0);
}
void pila::clear()
{
int e;
if(p) { pop(e);
clear();
}
}
void pila::visualizza()
{ P q;
q=p;
visual();
p=q;
}
void pila::visual()
{ if(p)
{ top();
p=p->prec;
visual();
}
}
void pila::ricerca()
{ P h=0;
int el, i=0 ;
cout<<"\n Inserisci elemento da ricercare ";
cin>>el;
trova(el,p,i,h);
cout<<"\n L'elemento stato trovato ("<<i<<") volte" ;
}
void trova (int el, P p, int & i, P & t)
{ if(p)
{ if(el==p->elem)
{ i++;
Pila
Semplice programma in C++ che permette di utilizzare una pila e di fare tutto ciò che si vuole al suo interno, dall'inserimento alla modifica, alla ricerca al suo interno, e tante altre opzioni.