¿Qué son las estructuras autorreferenciales?

Las estructuras autorreferenciales son aquellas que se refieren a sí mismas con un puntero para estructurar. Podemos utilizar estas estructuras en la implementación de listas vinculadas, árboles, intentos, etc.

Un ejemplo de las estructuras autorreferenciales de árboles binarios es

nodo de estructura {

datos int;

struct node * leftchild, * rightchild;

};

En el ejemplo anterior, el nodo de estructura se refiere a sí mismo por puntero a estructura. Esto no significa que la estructura apunte a sí misma. Se refiere a otro nodo que tiene el mismo diseño. Una vez que cree un nodo, cada nodo obtendrá una copia separada de la estructura anterior y, por lo tanto, cada nodo contendrá un puntero que apunta a otro nodo de estructura.

En los árboles binarios tenemos dos punteros que se refieren tanto al niño izquierdo como al derecho. Siempre es bueno inicializar esos punteros a NULL durante la inicialización. Esto puede evitar algunas fallas de segmentación tontas 🙂

Si una estructura contiene uno o más punteros a sí misma (una estructura del mismo tipo) que sus miembros, entonces se dice que la estructura es una estructura autorreferencial, es decir, una estructura que contiene una referencia a su propio tipo de estructura.

Por ejemplo:
nodo de estructura {
datos int;
struct node * next;
};

Aquí, la estructura ‘ nodo ‘ contiene un puntero llamado ‘ siguiente ‘, que es del mismo tipo (estructura de nodo) que la estructura que contiene (estructura de nodo).

Las estructuras autorreferenciales son aquellas estructuras que contienen referencias a sí mismas.

tomemos ejemplo

supongamos que desea crear una lista vinculada en lenguaje C, así que aquí procedemos así

primero crea un prototipo para sostener la estructura

/ * prototipo para almacenar los datos del nodo * /
nodo de estructura {
struct node * left; // puntero que almacena la dirección del nodo izquierdo
datos de caracteres [30]; //datos
struct node * right; // puntero que almacena la dirección del nodo derecho
}
/ * el código anterior no asigna memoria pero solo le dice al compilador que nuestro nodo compuesto de tres variables vise * left, data, * right * /

// ahora cada vez que declaramos variable asignará el espacio de memoria a // la variable como en la imagen
estructura nodo p;
p.data = “primero”

como en int * p; dice que p es un puntero que está listo para recibir la dirección entera de la misma manera que struct node * left dice que left es un puntero que está listo para recibir la dirección del tipo de nodo struct

espero que entiendas

siéntase libre de comentar en caso de cualquier consulta sobre el mismo

Gracias

Una estructura C autorreferencial es aquella que incluye un puntero a una “instancia” de sí misma.

Sabes, iba a escribir un ejemplo específico de esto … pero, realmente , el sitio Stack Overflow es un mejor lugar para esas preguntas, así que … ¿definición de estructura autorreferencial?

Se utiliza una estructura autorreferencial para crear estructuras de datos como listas vinculadas, pilas, etc. A continuación se muestra un ejemplo de este tipo de estructura:

struct struct_name
{
tipo de datos nombre de tipo de datos;
struct_name * pointer_name;
};

Una estructura autorreferencial es una de las estructuras de datos que se refieren al puntero a (puntos) a otra estructura del mismo tipo. Por ejemplo, se supone que una lista vinculada es una estructura de datos autorreferencial. Se apunta el siguiente nodo de un nodo, que es del mismo tipo de estructura. Por ejemplo,

typedef struct listnode {
datos nulos *;
struct listnode * next;
} lista enlazada;

Una estructura que contiene la misma variable de puntero de estructura que su elemento se denomina estructura autorreferencial.

para más información visita esta página

Junto con todas las respuestas dadas a las preguntas, lo que me emociona en una estructura autorreferencial es que veo una pequeña recurrencia en ella.

¿Vos si?