ayuda con listas enlazadasc++

#1
Hola a todos .... espero que esten bien... Quisiera que me pudieran ayudar... Estoy algo confuso con lo que son listas enlazadas , Resulta que hoy vimos listas enlazadas comprendo la teoria pero a la hora de intentar hacer el programa me tira unos errores, y algunos segun lo que no explico el profesor esta bueno :( o no se si me falto algo... y quisiera ver si ustedes me podrian brindar un codigo fuente sensillo... he intentado hacer lo siguiente
/***************************************************************/
#include <iostream.h>
#include<conio.h>

typedef struct nodo{
char nombre[50];
int nota;
struct nodo *siguiente;
}tiponodo;

typedef tiponodo *pnodo;
typedef tiponodo *lista ;


int main(){

struct nodo *siguiente=NULL;

// Lista apunte a nodo
lista=nodo;// ESTA ME DA ERROR


for(int i=0; i<10;i++){
nodo= new struct nodo; // ESTA ME DA ERROR
cout<<"DIGITE EL NOMBRE: "<<endl;
cin>>tiponodo.nombre;
cout<<"DIGITE Nota "<<endl;
cin>>tiponodo.nota;


}//cierre del for
}//cierre de la funcion


/*****************************************************************/
ESPERO QUE ME PUEDAN AYUDAR Y GRACIAS DE ANTEMANO, y si tuvieran algun ejemplo de lista enlaza que me puedan prestar se los agradeceria aun mas , asi podre estudiarlo mejor :( ...
 

jlrmdevil

Bovino maduro
#2
Bueno, checando someramente el codigo y tomando en cuenta que hace pinchumil años vi c++, los errores te los da por que no diferencias de nodo a pnodo, que asumiento nodo seria la declaracion y pnodo el puntero, por eso el error de lista = nodo (o sea el apuntador a una lista igual a una declaracion???????), creo que serira correcto lista = pnodo (un apuntador igual o señalando la direccion de otro apuntador)........


nodo= new struct nodo; esta instruccion va por las mismas.... creo que es pnodo= new struct nodo.

No tengo el compilador pero creo que ahi va.... y como no pusiste que error te da...pues menos
 
#3
Bueno, checando someramente el codigo y tomando en cuenta que hace pinchumil años vi c++, los errores te los da por que no diferencias de nodo a pnodo, que asumiento nodo seria la declaracion y pnodo el puntero, por eso el error de lista = nodo (o sea el apuntador a una lista igual a una declaracion???????), creo que serira correcto lista = pnodo (un apuntador igual o señalando la direccion de otro apuntador)........


nodo= new struct nodo; esta instruccion va por las mismas.... creo que es pnodo= new struct nodo.

No tengo el compilador pero creo que ahi va.... y como no pusiste que error te da...pues menos


Mira muchas gracias pues creo que ya me funciono esa partecita.. ahora voy a intentar enlazarla con un nuevo nodo ... :) ....
 
#6
#include <iostream.h>
#include<conio.h>


/***********************************************************
** INicio de la estructura nodo **
************************************************************/
// *
typedef struct nodo{// *
char nombre[50];// *
int nota;// *
struct nodo *siguiente;// *
}tiponodo;// *
//-------------VARIABLES PUNTEROS--------------------------*
struct nodo *pnodo;// *
struct nodo *lista ;// *
//----------------------------------------------------------

char opcion;//

/***************************************************************************************
**INICIO DE LA FUNCION PARA LLENAR **
****************************************************************************************/
// *
void llenar(){// *
struct nodo *siguiente=NULL;// *
// *
// Lista apunte a nodo *
lista=pnodo;// lista->nodo *
// *
// *
for(int i=0; i<10;i++){// *
pnodo= new (struct nodo);//crea un espavio para pnodo de tamaño de la estructura nodo *
pnodo->siguiente=NULL;// *
//lista=pnodo;// *
pnodo->siguiente=lista;// *
lista=pnodo;// *
// *
cout<<"DIGITE EL NOMBRE: "<<endl;// *
cin>>pnodo->nombre;// *
}//cierre del for *
}//cierre de la funcion llenar /*
//--------------------------------------------------------------------------------------


/********************************************************************************
** INICIO DE LA FUNCION LLenar **
*********************************************************************************/
void visualizar(){//inicio de la funcion visualizar *
}//cierre de la funcion visualizar *
//-------------------------------------------------------------------------------



/***************************************************************************************
** INICIO DE LA FUNCION MENU **
****************************************************************************************/
// *
int menu(){// *
system("CLS");// *
cout<<"=======MENU======= "<<endl;// *
cout<<"1. Agregar Datos "<<endl;// *
cout<<"2.Ver Datos"<<endl;// *
cout<<"3.Salir"<<endl;// *
cout<<"\nIngrese La Opcion Deseada\n";// *
cin>>opcion;// *
return(opcion);// *
system("PAUSE");// *
}//cierre de la funcion menu *
// *
//----------------------CIERRE DE LA FUNCION MENU---------------------------------------



/***************************************************************************************
** INICIO DE LA FUNCION PRINCIPAL **
****************************************************************************************/
// *
int main(){// *
// *
fflush(stdin);// *
// *
for(;;){// *
switch (opcion=menu()){// *
case '1':system("CLS");// *
// *
llenar();// *
break;// *
case '2':// *
visualizar(); ;// *
break;// *
case '3': system("CLS");// *
break;// *
default:// *
cout<<"opcion incorrecta "<<endl;// *
system("PAUSE\n");// *
break;// *
}//termina el switch *
if(opcion=='3'){// *
break;}// *
}//cierre del for (;;) que permite regresar al menu *
// *
}//cierre de la funcion *
//--------------CIERRE DE LA FUNCION----------------------------------------------------

hola ... hice esto ... creo q esta bn se supone q es una lista enlazada alguien me puede confirmar si sirve? ( osea si copila y corre lo que kiero ver es si realmente lo hice bn )
 
Arriba