Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Estructuras con punteros

Estas en el tema de Estructuras con punteros en el foro de C/C++ en Foros del Web. Hola, la pregunta es simple: En C, como declaro un tipo propio que es una estructura que contiene un puntero que apunta al mismo tipo? ...
  #1 (permalink)  
Antiguo 21/04/2008, 11:39
 
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Estructuras con punteros

Hola, la pregunta es simple:

En C, como declaro un tipo propio que es una estructura que contiene un puntero que apunta al mismo tipo? Lo necesito para crear una cola dinamica de enteros.



Este es el tipo que quiero crear:

Código:
typedef struct{
     int n;
     Node *seg;
}Node;
Al compilar el programa me da error... y es logico, no puedo usar un tipo (en este caso Node) sin antes haberlo declarado. A ver si me podeis ayudar.


Saludos.
  #2 (permalink)  
Antiguo 21/04/2008, 14:54
 
Fecha de Ingreso: abril-2008
Mensajes: 19
Antigüedad: 16 años
Puntos: 0
Re: Estructuras con punteros

Yo tengo entendido que una estructura se define como:

Código:
struct Node
{
     .
     .
      Node var_name;
}Node1;
El nombre de la estructura no puedes usarlo como variable por eso le di "Node1" y el "typedef" no se usa para la definicón, el "typedef" sirve para dar "apodos" a los nombre de las estructuras por ejemplo en este caso sería:

Código:
typedef struct Node nodos;
ahora puedes hacer referecnia a la estructura como "nodos", declarar variables tipo "nodos" y todo lo que puedes hacer con la estructura Node
  #3 (permalink)  
Antiguo 22/04/2008, 05:53
 
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Re: Estructuras con punteros

Me explique mal seguramente xD. Ya di con la solucion:

Código:
typedef struct N{
     int n;
     struct N *seg;
}Node;

El dibujo que representa lo que quiero hacer es este:



El puntero seg apunta al registro de tipo Node, y claro, no podia crear dicho puntero porque todavia no habia creado el tipo.

Saludos.

Última edición por GagleKas; 22/04/2008 a las 06:03
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:24.