Estructura + Nodos

David Esd
22 de Noviembre del 2005

Hola gente de C/C++ , porfa ayudenme con un problema, quiero usar una estructura de datos, pero que se enliste como una lista enlazada(con nodos). Por ejemplo en el codigo de abajo creo la estructura: pero.... (mas abajo explico..)
-----------------------------------------------
struct profesor
{
char titulo [25];
char autor [20];
int num_pag ;
float pvp;
]

void main(void)
{
struct profesor libros [10] //declaro
int total=0;
int i= 0;
char resp;
do
{
cout <<"Total libros: " << (total + 1)<<endl;
cin >>libro[total].titulo;
cout<<endl<<"mas s/n" ;
resp=toupper(resp);
if(resp=='S')
total++;
}
while (resp=='S')
}

------------------------------------------------------

... como puedo ahora juntar esta estructura que se vaya grabando como un nodo???? hice esto pero no me corrio cuando quize ingresar los datos.
--------------------------------------------

*typedef struct profesor
{
char* nom;
char* sex;
int edad;
struct profesor *sig;
} PROFESOR;

struct nodo
{
PROFESOR info;
struct nodo *sig;
};
-------------------------------------------

Que alguien me ayude, que necesito hacer este programa para mi nota, y que funcione con estrcuturas, pero como una lista enlazada (nodo) , los cuales tendran un menu (de ingreso, borrar o buscar) .. si laguine tien un script parecido que funcione y en tal caso lo adecuo. GrACIAS

David Esd
22 de Noviembre del 2005
SI lo que hiciste si funciona, pero como ahora ingreso un dato? .. como nodo.edad ?? . Yo hice esto pero me sale siempre errores. SI alguien tiene unn script , para ingresar los datos via teclado...

kike
22 de Noviembre del 2005
segun el ejemplo anterior

//declarar nuevo nodo
profesor *nodo=new profesor;
nodo->pSiguiente=NULL;
//cargar sus datos
cout<<"intro edad"<<endl;
cin>>nodo->edad;
pFinal->pSiguiente=nodo;
pFinal=nodo;

kike
22 de Noviembre del 2005
Puedes hacer esto
struct profesor
{
char titulo [25];
char autor [20];
int num_pag ;
float pvp;
profesor *pSiguiente;
};

Cuando crees cada nodo (profesor) tienes que apuntar el pSiguiente a NULL y acceder al puntero siguiente del ultimo nodo y asignarle la direccion del nodo creado.
De esta manera cada nodo apuntara el siguiente en la lista, y con un puntero puedes recorrer la lista

profesor Inicio;
Inicio.pSiguiente=NULL;
profesor *pInicial=Inicio;
profesor *pFinal=Inicio;
//crear nuevo nodo
profesor *nuevo=new profesor;
iniciar datos
nuevo->pSiguiente=NULL;
pFinal->pSiguiente=nuevo;
//recorrer la lista
profesor *pR=Inicio;
while(pr)
{
manipular datos;
pr=pr->pSiguiente;
}

Mas o menos es eso...