[C con Clase] Listas enlazadas

Melissa Santacruz melissasantacruz en hotmail.com
Jue Mayo 26 01:48:44 CEST 2011


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 posreturn pos;else   return NULL;}        














































 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110525/2fa118d1/attachment.html>


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