[C con Clase] Listas enlazadas

Diego diegoartesanal en gmail.com
Mar Mayo 31 06:25:39 CEST 2011


Mellisa, hice este ejemplo, que realiza todo lo que necesitas menos lo de
buscar.

Está todo en un mismo archivo, de ser necesario, separas la clase ENTERO y
LISTA en otros archivos y los incluyes desde el main.

Revisalo y las dudas que tengas me consultas.

Diego.

El 25 de mayo de 2011 18:48, Melissa Santacruz <melissasantacruz en hotmail.com
> escribió:

>  Hola a todos esto mas bien quiero compartir con ustedes ya que mucho
> todavia no entiendo y se que con ustedes entendere, y para que no se tomen
> mucho tiempo le especifique con colores,espero que me ayudeeen, porque me
> salen muchos errores u.u
>
> Nos pidio lo siguiente:
> 1. Escribir una funcion miembro en la clase lista, que devuelva el primer
> elemento de la lista si es que lo tiene.
> 2. Escribir una funcion miembro en la clase lista, que devuelva el numero
> de nodos de la lista enlazada.(Para obtener el numero de nodos de una lista,
> basta con recorrerla desde la cabeza de la lista y contarlos con un
> contador).
> 3. Agrega la funcion miembro Buscar() a la clase Lista, prueba y describe
>
> //Esa funcion Buscar() ya la pondre pero creo que le faltan datos para
> algun archivo.
>
> El tema es el siguiente la profesora nos dio para hacer un proyecto con 3
> archivos:
> clase Nodo.h - clase Lista.h - y con el programa principal y son los
> siguientes:
>
> PRINCIPAL:
>
> #include <iostream>
> #include <cstdlib>
> using namespace std;
>
> typedef int Dato;
>
> #include "Nodo.h"
> #include "Lista.h"
>
>
> int main(int argc, char *argv[])
> {
>     Lista lista;
>     lista.crearLista();
>     lista.primero();   // ESTO ES PARTE DE LO QUE PIDIO QUE NO ME SALIO
> PARA EL PRIMER EJERCICIO
>     lista.buscar();
>
>     cout<<" el primer elemento es" << lista.primero() << endl;
>
>     system("PAUSE");
>     return EXIT_SUCCESS;
> }
>
> CLASE NODO.H:
>
> typedef int Dato;
> #ifndef _NODO_H
> #define _NODO_H
>
> class Nodo
> {
> protected:
>     Dato dato;
>     Nodo *enlace;
> public:
>     Nodo (Dato t)
>     {
>         dato = t;
>         enlace = 0;
>     }
>
>     Nodo (Dato p, Nodo *n)
>     {
>         dato = p;
>         enlace = n;
>     }
>
>     Dato datoNodo () const
>     {
>         return dato;
>     }
>
>     Nodo *enlaceNodo () const
>     {
>         return enlace;
>     }
>
>     void ponerEnlace (Nodo *sgte)
>     {
>         enlace = sgte;
>     }
>
>     };
>
>     #endif
>
> CLASE LISTA.H:
>
> typedef int Dato;
>     #include "Nodo.h"
>     #include <iostream>
>     using namespace std;
>
>     class Lista
>     {
>         protected:
>                 Nodo *primero;
>
>         public:
>                 Lista()
>                 {
>                 primero = NULL;
>         }
>         void crearLista();
>         Dato Lista();   //ESTO NO SE COMO SE DEBE INICIALIZAR
>         void Buscar();   //ESTO SERA ASI? es el ejercicio 3
>
>     };
>
>     void Lista::crearLista()
>     {
>         int x;
>         primero = 0;
>         cout<< "Termina con -1" <<endl;
>
>         do
>         {
>                 cin>> x;
>
>                 if (x != -1)
>                 {
>                 primero = new Nodo (x, primero);
>                 }
>         }while (x != -1);
>
>     }
>     Dato Lista::Primero()
>     {                                                    //ESTO ES LO QUE
> NO SALE ES DEL PRIMERO
>          if(primero)
>          return primero->datoNodo()
>          else cout<< "Error";
>          }
>
>   Nodo *Lista::Buscar(Dato x)
> {
>   Nodo *pos = primero;
>  bool enc = false;
>
> while (!enc && pos)
>  if (pos->enlaceNodo();
>  //ESTO PERTENECE AL EJERCICIO 3
>    pos = pos->enlaceNodo();
> else enc = true;
>
> if (enc)   //EQUIVALENTE A PONER RETURN pos
> return pos;
> else
>    return NULL;
> }
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110530/4f42493e/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: Ejemplo_Lista.cpp
Type: text/x-c++src
Size: 2367 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110530/4f42493e/attachment.bin>


Más información sobre la lista de distribución Cconclase