Tengo una pequeña duda que no acabo de resolver; es muy simple, pero es por quitármela de encima. Tengo este código, que funciona perfectamente, pues lo he quitado del libro del que estoy estudiando, pero no logro entender una cosa concreta. El el código siguiente, cuando se declara la estructura STRUCT T_NODO *PRINCIPIO, si solo es un puntero que indica el inicio de toda la lista, no podria declarar una variable puntero normal que guardase la direccion de memoria del lugar donde se inicia la la lista?. Esto es lo que tengo
Código
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> using namespace std; struct t_nodo { int numero; // Almacena los datos del nodo t_nodo *siguiente; // Variable puntero a otra estructura t_nodo }; struct t_nodo *principio = NULL; int main (void) { //Declaro la funcion; lo podria haber puesto todo junto pero da igual void insertar_al_principio (struct t_nodo *&p); } void insertar_al_principio (struct t_nodo *&p) { struct t_nodo *nuevo_nodo; // Creamos nuevo nodo nuevo_nodo = new struct t_nodo; // Rellenamos los campos de datos cout << "Escriba un numero: " << endl; cin >> nuevo_nodo->numero; /* Insertamos el nuevo nodo al principio de la lista */ nuevo_nodo->siguiente = p; p = nuevo_nodo; }
Gracias de antemano. Un abrazo!