1

Este documento necesita una revisión de su contenido. Si te ha sido útil, por favor, considera colaborar con la página haciéndote moderador.

Clasificado en Apuntes de Otras materias de Otros cursos.

Escrito el 24 de Mayo de 2009 en esEspañol y con un tamaño de 3.242 bytes.

#include "stdafx.h"
#include "stdlib.h"
#include "iostream.h"
class nodo
{ int info;
nodo * sig;
public:
nodo(int i=0):info(i),sig(NULL){}
friend class pila;
};
class pila
{
nodo * principio;
public:
pila(){ cout << "Constructor::pila \n"<< endl; principio = NULL;}
~pila();
void insertar(int dato);
void eliminar();
pila &operator=(const pila &);
int operator==(const pila &);
pila(const pila &p);
};
pila::~pila(){
cout << " Destructor::pila" <<endl;
nodo *p,*q;
p=principio;
while(p!=NULL)
{
q=p;
cout << "Eliminando.." <<q->info <<endl;
p = p ->sig;
delete(q);
}
principio = NULL;
}
void pila::insertar(int dato){
nodo *nuevo,*ptr;
nuevo = new nodo (dato);
if( principio == NULL) // lista vacia
{ principio =nuevo;}
else {
ptr = principio;
nuevo->sig=ptr;
principio = nuevo;
}
}
void pila::eliminar(){
if(principio != NULL)
{ nodo *ptr;
ptr= principio;
principio = ptr->sig;
delete (ptr);
}
}


//Constructor de copia
pila::pila(const pila &p)
{cout << "Constructor_Copia::pila\n"<< endl;
nodo *ptr;
ptr = p.principio;
while(ptr!= NULL)
{
insertar(ptr->info);
ptr = ptr ->sig;
}
}
pila &pila::operator =(const pila &p) //& para que no se haga una copia por parte del constructor
{
cout << "Sobrecarga del operador=\n"<< endl;
this ->~pila();
nodo *ptr;
ptr = p.principio;
while(ptr!=NULL)
{
insertar(ptr->info); // va pasando los nodos
ptr = ptr ->sig;
}
return *this;
//es el contenido del objeto que ha hecho la llamado
}
int pila::operator ==(const pila & p){
cout << "\nSobrecarga del operador ==\n"<< endl;
nodo *ptr;
const nodo *ptr1;
ptr = principio;
ptr1 = p.principio;
if((ptr==NULL) && (ptr1==NULL)) return 1;
if( (ptr!=NULL) && (ptr1!=NULL)){
while(ptr->info == ptr1->info)
{
ptr=ptr->sig;
ptr1=ptr1->sig;
if((ptr==NULL) && (ptr1==NULL)) return 1;
if((ptr!=NULL) & (ptr1!=NULL)) return 0;
}
}
return 0;
}
void main()
{
pila p,p1;
int dato;
char c;
cout << " Insertar dato\n" << endl;
cin >> dato;
p.insertar(dato);
cout << " desea insertar otro dato? s/n\n" << endl;
cin>>c;
while (c=='s'){
cout << " Insertar dato\n" << endl;
cin >> dato;
p.insertar(dato);
cout << " desea insertar otro dato? s/n\n" << endl;
cin>>c;
}
p=p1;
if(p==p1){
cout << " Despues de hacer p==p1, podemos decir que son iguales " << endl;}
}
Tags:lt;&lt,quot,pila,insertar,p,ptr
Este documento se ha visitado 204 veces y le gusta a 1 personas
Los usuarios que han visitado esta ficha también han buscado:
copiar una pila en otra

copiar una pila a otra

como copiar una pila en otra

copiar lista de nodos c++

copiar una pila a otra c++
QUE ES UNA PILA EN C
contructor copia en c++ de una pila

copiar pila

copiar el contenido de una pila en otra c++

const ::nodo c++

constructor de la pila

ptr Nuevo->dato=info

*ptr==NULL

constructor de copia de una pila en c++

copiar una pila en otra en c++

c++ como copiar el contenido de una pila en otra

copiar un pila a otra pila C

constructor de copia pila nodos
sobrecarga pila c++

constructor copia pila c++

Cursos
¿Quieres saber más sobre Como copiar una pila en otra?
Descubre nuestra selección de los mejores cursos para ampliar tu formación.
Comentarios

Compartir

© Wikiapuntes, 2012
Chuletas  |  Apuntes  |  Estudioteca