• Domingo 15 de Diciembre de 2024, 16:49

Autor Tema:  Duda Crear Nodo Lista  (Leído 1747 veces)

mnv_19

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Duda Crear Nodo Lista
« en: Miércoles 6 de Junio de 2007, 00:30 »
0
Hola, tengo una duda, entre dos sentencias a la hora de crear un nodo en una lista enlazada para almacenar al informacion, aver si me podeis ayudar!gracias.
Código: Text
  1. struct datos *CrearDatos(char nombre[50]){
  2.   struct datos *nuevo;
  3.   nuevo=(struct datos *)malloc(sizeof(struct datos));
  4.   strcpy(nuevo->nombre,nombre);
  5.   nuevo=nuevo->sig; // o por el contrario es
  6.   nuevo->sig=NULL; //¿y por qué?
  7.   return(nuevo);
  8.  
  9. }
  10.  

Gracias por vuestra ayuda!!
"Los verdaderos programadores no hablan de su código. Fue difícil escribirlo, y aun mucho mas entenderlo."

"Los ordenadores no son inteligentes. Solo creen que lo son."

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Duda Crear Nodo Lista
« Respuesta #1 en: Miércoles 6 de Junio de 2007, 00:37 »
0
pero.. cual es el problema, que es lo que querej hacer ???


BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

mnv_19

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Duda Crear Nodo Lista
« Respuesta #2 en: Miércoles 6 de Junio de 2007, 00:59 »
0
Lo que quiero es crear un nodo para almacenar la informacion que se encuentra en la estructura datos,entonces una vez que reservo memoria para dicha estructura,e inserto los datos delos que se compone la estructura(en este caso nombre)que tengo que hacer?
cual de las dos sentencias es la correcta?
nuevo->sig=NULL; ó
nuevo=nuevo->sig;

GRACIAS!!!
"Los verdaderos programadores no hablan de su código. Fue difícil escribirlo, y aun mucho mas entenderlo."

"Los ordenadores no son inteligentes. Solo creen que lo son."

mnv_19

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Duda Crear Nodo Lista
« Respuesta #3 en: Miércoles 6 de Junio de 2007, 01:07 »
0
Por cierto necesito ayuda con la discusion titulada Listas, me harias un gran favor si me ayudaras.Gracias.
"Los verdaderos programadores no hablan de su código. Fue difícil escribirlo, y aun mucho mas entenderlo."

"Los ordenadores no son inteligentes. Solo creen que lo son."

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Duda Crear Nodo Lista
« Respuesta #4 en: Miércoles 6 de Junio de 2007, 02:23 »
0
supongo que la estructura de tu nodo es:
NODO tiene dos campos: Nombre y Siguiente.
Nombre guarda su contenido
Siguiente apunta al siguiente nodo.

Si lo que queres es que tu nuevo nodo sea el ultimo, entonces dejpuej de guardar su nombre, tendrias que hacer:
Código: Text
  1. nodo->sig = null;
  2.  

Si lo que queres es que tu nuevo nodo sea el primero, entonces dejpuej de guardar su nombre, tendrias que hacer:
Código: Text
  1. nodo->sig = PrimerNodo;
  2.  


BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

mnv_19

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Duda Crear Nodo Lista
« Respuesta #5 en: Miércoles 6 de Junio de 2007, 13:47 »
0
Lo que no se es lo que tengo que hacer despues de crear un nodo para dichos datos, si el nodo siguiente que sea NULL o por el contrario pasar al siguiente nodo sin darle el valor NULL.
la estructura de mi nodo es esa,si.
"Los verdaderos programadores no hablan de su código. Fue difícil escribirlo, y aun mucho mas entenderlo."

"Los ordenadores no son inteligentes. Solo creen que lo son."

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Duda Crear Nodo Lista
« Respuesta #6 en: Miércoles 6 de Junio de 2007, 23:55 »
0
Tienes que recorrer la lista y 'apuntar' el ultimo nodo al Nuevo y el nuevo apuntarlo a null si lo que quieres es insertar al Final


Citar
q=Primero

  mientras (q->siguiente!=NULL)
    {
          q=q->siguiente;
    }

    q->siguiente=Nuevo;
    Nuevo->siguiente=NULL;



Insertar al inicio es apuntar al primer nodo

Citar
Nuevo->siquiente=Primero
Primero=Nuevo



Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================