Hola topo, gracias por la respuesta, ahora he creado 3 funciones de lista, la primera es "crearLista" que solo devuelve un puntero NULL , la segunda es "esListaVacia" que solo te dice si el puntero apunta a NULL, hasta aqui funcionan bien, pero he creado otra que se llama primerElementoLista que lo que hace es justamente ponerle un nodo a la lista vacía, pero si ejecuto otra vez esta misma función no da error, que puede ser ?
#include<iostream>
using namespace std;
//Definimos lo que es un nodo
struct nodo {
int info;
struct nodo* siguiente;
};
//Defino mas corto el nombre para el nodo
typedef struct nodo Nodo;
//Defino lo que es un puntnodo
typedef Nodo* puntnodo;
/***FUNCIONES DE LISTA SIMPLE ENLAZADA***/
//Funcion crear Lista
puntnodo crearLista(void)
{
return NULL;
}
//Funcion de la lista vacia
bool esListaVacia(puntnodo j)
{
if( j == NULL )
return true;
else
return false;
}
//Funcion para insertar primer elemento
void primerElementoLista(puntnodo j,int e)
{
if( esListaVacia(j)==true )
{
Nodo x; //Seria lo equivalente a el "getNodo"
x.info=e;
x.siguiente=NULL;
j=&x; //Que "j" apunte a x , por eso le puse el "&"
}
else
cout << "ERROR, esta lista no esta vacia";
}
int main()
{
puntnodo j = new Nodo;
j=crearLista(); //Aca "j" apunta solo a NULL
primerElementoLista(j,19); //Aca "j" apunta a un nodo que contiene el 19
primerElementoLista(j,21); //Esto deberia dar "error" y no da :S
cin.get();
return 0;
}