Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef CListaH
- #define CListaH
- //---------------------------------------------------------------------------
- #endif
- template <class tipo>
- class Lista
- {
- private:
- template <class t>
- struct Nodo
- {
- t info;
- Nodo<t>* sig;
- }; //Nodo
- int numElementos;
- Nodo<tipo>* primero;
- Nodo<tipo>* ultimo;
- public:
- Lista()
- {
- numElementos = 0;
- primero = NULL;
- ultimo = NULL;
- } //Lista()
- ~Lista()
- {
- Nodo<tipo>* pAuxiliar = NULL;
- while (numElementos != 0)
- {
- pAuxiliar = primero->sig;
- borrarInfo(primero->info);
- delete primero;
- primero = pAuxiliar;
- numElementos--;
- }
- ultimo = NULL;
- } //~Lista()
- int dameNumElementos()
- {
- return numElementos;
- } //dameNumElementos
- tipo dameElemento(int posicion)
- {
- Nodo<tipo>* pAuxiliar;
- pAuxiliar = primero;
- for(int i=0;i<posicion;i++)
- {
- pAuxiliar=pAuxiliar->sig;
- }
- return pAuxiliar->info;
- /*
- int contElementos;
- contElementos = 0;
- while (pAuxiliar != NULL)
- {
- if (contElementos == posicion)
- return pAuxiliar->info;
- else
- {
- pAuxiliar = pAuxiliar->sig;
- contElementos++;
- }
- }
- return NULL;*/
- } //dameElemento
- void insertarElemento(tipo nuevaInfo)
- {
- Nodo<tipo>* pNuevo;
- pNuevo = new Nodo<tipo>;
- asignaInfo(pNuevo->info,nuevaInfo);
- if (numElementos == 0)
- {
- primero = pNuevo;
- ultimo = pNuevo;
- }
- else
- {
- ultimo->sig = pNuevo;
- ultimo = pNuevo;
- }
- numElementos++;
- } //insertarElemento
- void eliminarElemento(int posEliminar)
- {
- Nodo<tipo>* pBorrar = primero;
- Nodo<tipo>* pAnterior = NULL;
- if (numElementos >= 1)
- {
- for (int elemRecorridos = 0; elemRecorridos < posEliminar; elemRecorridos++)
- {
- pAnterior = pBorrar;
- pBorrar = pBorrar->sig;
- }
- if (pAnterior == NULL)
- {
- primero = pBorrar->sig;
- if (primero == NULL) //ves si tiene 1 el.
- ultimo = NULL;
- } //primer elemento
- else
- {
- pAnterior->sig = pBorrar->sig;
- }
- if (pBorrar->sig == NULL)
- {
- ultimo = pAnterior;
- } //para saber si es el ultimo elemento
- borrarInfo(pBorrar->info);
- delete pBorrar;
- numElementos--;
- }
- } //eliminarElemento
- }; //class Lista
Add Comment
Please, Sign In to add comment