Está en la página 1de 3

#include<cstdlib>

#include<iostream>

using namespace std;

class TNodo{
public: int datos;
TNodo *enlace;
TNodo(){
datos = 0;
enlace = NULL;
}
};

class TLista{
public:

TNodo *primero;
TNodo *ultimo;
TNodo *previo;
TLista(){
primero = NULL;
ultimo = NULL;

TNodo *buscarNodo(int _dato){


TNodo *pNodo;
pNodo = primero;
while ( pNodo!= NULL ){
if(pNodo->datos == _dato){
break;
}
pNodo= pNodo ->enlace;

}
return pNodo;
}
void borrarPrimero(){
if(primero == NULL){
cout<< "lista vacia \n";
}
else{
TNodo *puntero = primero;
primero= primero -> enlace;
delete puntero;
}
}
void borrarUltimo (){

TNodo *puntero;

if(primero==NULL)
cout<<"lsita vacia\n";

if(primero->enlace==NULL)
{
puntero=primero;
primero=NULL;
delete puntero;
}

else
{ TNodo *prev;
puntero=primero;
while(puntero->enlace!=NULL)
{
prev=puntero;
puntero=puntero->enlace;
}
prev->enlace=NULL;
delete puntero;

void AgregarNodo(int _datos){


TNodo *pNodo;
pNodo = new TNodo;
pNodo->datos = _datos;
if (primero == NULL){
primero = pNodo; }
else {
ultimo->enlace = pNodo;
}

ultimo = pNodo;
}

void mostrarNodos(){
TNodo *pNodo, *pMostrar;
pNodo = primero;
while(pNodo){
pMostrar = pNodo;
pNodo =pNodo -> enlace;
cout<< pMostrar->datos<<endl;

}
}

~TLista(){
TNodo *pNodo, *pBorrar;

pNodo = primero;
while (pNodo!=NULL){
pBorrar = pNodo;
pNodo = pNodo->enlace;
delete pBorrar; }
}
};
TNodo *resultado;
int main(){
TLista Leer;

Leer.AgregarNodo(10);
Leer.AgregarNodo(5);
Leer.AgregarNodo(7);
Leer.AgregarNodo (50);
Leer.AgregarNodo(2);
cout << " \n\n LISTA ENZALAZADA ESTA LLENADA\n";
Leer.borrarPrimero();
Leer.borrarUltimo();
Leer.mostrarNodos();
cout<< " Comenzar busqueda....\n ";
resultado = Leer.buscarNodo(10);
if(resultado!=NULL){
cout<< resultado -> datos << endl;
}
else{
cout<< " No se encontro el nodo\n ";

system("pause");
return 0;

También podría gustarte