Plantillanodo.htm
#include "ListaR.h"
#include "ListaR.cpp"
#include "NodoR.h"
#include "NodoR.cpp"
#include<iostream>
using namespace std;
void menu();
int main()
{
ListaR<int> nueva;
int muestra;nueva.ingresainicio(10);
int x;
int ind;
int op;
do
{
system("cls");
menu();
cout<<":";
cin>>op;
switch(op)
{
case 1:
system("cls");
cout<<"ingrese el dato:";
cin>>x;
nueva.ingresainicio(x);
system("pause");
break;
case 2:
system("cls");
cout<<"LISTA ACTUAL"<<endl;
nueva.imprimelista();
cout<<"eliminar:";
cin>>x;
nueva.borranodo(x);
cout<<"NUEVA LISTA"<<endl;
nueva.imprimelista();
system("pause");
break;
case 3:
system("cls");
nueva.~ListaR();
cout<<"lista borrada"<<endl;
system("pause");
break;
case 4:
system("cls");
cout<<"ingrese dato:";
cin>>x;
cout<<endl;
cout<<"numero de posicion:";
cin>>ind;
nueva.encuertaporindice(x,ind);
system("pause");
break;
case 5:
system("cls");
cout<<"ingrese dato:";
cin>>x;
cout<<endl;
muestra=nueva.regresadato(x);
cout<<"dato:"<<muestra;
system("pause");
break;
case 6:
system("cls");
cout<<"ingrese el dato:";
cin>>x;
cout<<"numero de posicion:";
cin>>ind;
nueva.ingresa(x,ind);
system("pause");
break;
case 7:
system("cls");
cout<<"ingrese el dato:";
cin>>x;
nueva.ingresafinal(x);
system("pause");
break;
case 8:
system("cls");
nueva.imprimelista();
system("pause");
break;
case 9:
system("cls");
cout <<"fin delprograma"<<endl;
system("pause");
break;
}
}while(op!=9);
system("pause");
return 0;
}
void menu()
{
cout<<"---------MENU-------------------"<<endl;
cout<<endl;
cout<<"1....ingresa dato al inicio"<<endl;
cout<<endl;
cout<<"2....elimina de la lista"<<endl;
cout<<endl;
cout<<"3....borra toda la lista"<< endl;
cout<<endl;
cout<<"4....busca dato por posicion"<< endl;
cout<<endl;
cout<<"5....busca dato y muestra"<< endl;
cout<<endl;
cout<<"6....inserta dato"<<endl;
cout<<endl;
cout<<"7....ingresar dato al final"<< endl;
cout<<endl;
cout<<"8....muestra lista"<<endl;
cout<<endl;
cout<<"9....salir"<<endl;
cout<<endl;
cout<<"ELIJA UNA OCCION"<<endl;
}
nodoR.htm
#ifndef NODOR_H
#define NODOR_H
template<class T>
class NodoR
{
public:
NodoR *sig;
T dato;
NodoR(T);
NodoR();
};
#endif
nodoRcpp.htm
#include "NodoR.h"
#include<iostream>
template <typename T>
NodoR<T>::NodoR(T dato)
{
this->dato=dato;
sig=NULL;
}
template <typename T>
NodoR<T>::NodoR()
{
dato=NULL;
sig=NULL;
}
Nfff.htm
#ifndef LISTAR_H
#define LISTAR_H
#include "NodoR.h"
#include<iostream>
using namespace std;
template<typename T>
class ListaR
{
public:
NodoR<T> *primero;
NodoR<T> *ultimo;
ListaR(void);
void ingresainicio(T);
void ingresafinal(T);
int estavacia();
void limpia();
int encuertaporindice(T,int);
void imprimelista();
void ingresa(T,int);
int regresadato(T);
void borranodo(T);
~ListaR();
};
#endif
Listarcpp.htm
#include<iostream>
using namespace std;
#include "ListaR.h"
template<typename T>
ListaR<T>::ListaR()
{
primero=NULL;
ultimo=NULL;
};
Listarcpp2.htm
#include<iostream>
using namespace std;
#include "ListaR.h"
template<typename T>
ListaR<T>::ListaR()
{
primero=NULL;
ultimo=NULL;
};
template<typename T>
void ListaR<T>::ingresainicio(T dato)
{
NodoR<T> *nodo = new NodoR<T>(dato);
if(estavacia())
{
primero=nodo;
ultimo=nodo;
}
else
{
nodo->sig = primero;
primero=nodo;
}
};
template<typename T>
void ListaR<T>::ingresafinal(T dato)
{
NodoR<T> *nodo = new NodoR<T>(dato);
if(estavacia())
{
primero = nodo;
ultimo = nodo;
}
else
{
ultimo->sig=nodo;
ultimo=nodo;
}
};
template<typename T>
int ListaR<T>::estavacia()
{
return(primero==NULL && ultimo==NULL);
};
template<typename T>
void ListaR<T>::limpia()
{
NodoR<T> *nodo,*sig=NULL;
if(estavacia())
{
return;
}
nodo=primero;
while(nodo!=NULL)
{
sig=nodo->sig;
delete nodo;
nodo=sig;
}
primero=NULL;
ultimo=NULL;
};
template<typename T>
int ListaR<T>::encuertaporindice(T dato,int indice)
{
NodoR<T> *nodo;
nodo=primero;
int i=1;
while(nodo!=NULL && i<indice)
{
nodo=nodo->sig;
i++;
}
if(nodo!=NULL)
{
return nodo->dato;
}
else
{
cout<<"no existe el indice:"<<i<<endl;
return 0Xffff;
}
};
template<typename T>
void ListaR<T>::imprimelista()
{
NodoR<T> *nodo;
nodo=primero;
int i=1;
if(estavacia())
{
cout<<"no existen elemento"<<endl;
}
else
{
while(nodo!=NULL)
{
cout<<"nodo "<<i<<":"<<nodo->dato<<endl;
nodo=nodo->sig;
i++;
}
}
};
template<typename T>
void ListaR<T>::ingresa(T dato, int indice)
{
NodoR<T> *nodo;
NodoR<T> *prev=NULL;
nodo=primero;
int i=0;
while(nodo!=NULL && i<indice)
{
prev=nodo;
nodo=nodo->sig;
i++;
}
if(nodo!=NULL)
{
if(nodo!=primero)
{
NodoR<T> *nodoNuevo = new NodoR<T>(dato);
prev->sig=nodoNuevo;
nodoNuevo->sig=nodo;
}
}
else
{
if(estavacia())
{
ingresainicio(dato);
}
else
{
ingresafinal(dato);
}
}
cout<<"el dato esta en psosicion:"<<i<<endl;
};
template<typename T>
int ListaR<T>::regresadato( T dato)
{
NodoR<T> *nodo;
nodo=primero;
while(nodo!=NULL && nodo->dato!=dato)
{
nodo=nodo->sig;
}
if(nodo!=NULL)
{
return nodo->dato;
}
else
{
cout<<"no se encontro elevento"<<endl;
return 0Xffffff;
}
};
template <typename T>
ListaR<T>::~ListaR()
{
limpia();
}
template<typename T>
void ListaR<T>::borranodo(T dato)
{
NodoR<T> *nodo,*prev=NULL;
nodo=primero;
while(nodo!=NULL && nodo->dato!=dato)
{
prev=nodo;
nodo=nodo->sig;
}
if(nodo!=NULL)
{
prev->sig=nodo->sig;
delete nodo;
}
else if(nodo!=NULL && prev==NULL)
{
primero=nodo->sig;
delete nodo;
}
};
No hay comentarios:
Publicar un comentario