Data">
Nothing Special   »   [go: up one dir, main page]

Punteros y Nodos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 2

¿Qué es un puntero?

Un puntero es una variable que contiene la dirección de memoria de un dato o de otra


variable que contiene al dato en un arreglo. Esto quiere decir, que el puntero apunta al
espacio físico donde está el dato o la variable. Un puntero puede apuntar a un objeto de
cualquier tipo, como por ejemplo, a una estructura o una función. Los punteros se
pueden utilizar para referencia y manipular estructuras de datos, para referenciar
bloques de memoria asignados dinámicamente y para proveer el paso de argumentos por
referencias en las llamadas a funciones.
Muchas de las funciones estándares de C, trabajan con punteros, como es el caso
del scanf o strcpy. Estas funciones reciben o devuelve un valor que es un puntero. Por
ejemplo: A scanf se le pasa la dirección de memoria del dato a leer...

char a;
scanf ("%c",&a);

En este caso se le pasa la dirección de memoria de la variable a, la cual tiene reservado


un espacio en la memoria por el compilador. Podríamos hacer lo mismo con este
código:

char *a = (char*) malloc (sizeof (char));


scanf ("%c", a);

En este código, al scanf le pasamos el puntero en sí. El puntero es una variable, como
bien se ha dicho anteriormente, que contiene una dirección de memoria, por tanto, no es
necesario el uso de & para pasarle la dirección de memoria a scanf. Anteriormente
hemos tenido que reservar un espacio de memoria con malloc(), que se verá su uso más
adelante.
Este código sería erróneo y daría una violación de segmento:

char *a;
scanf ("%c", a);

En este caso, no hemos reservado memoria, por lo tanto la función escribirá en una
dirección de memoria que no le pertenece, y por ello se producirá la susodicha violación
de segmento.

¿Qué es un nodo?

En informática, un nodo es un «punto de intersección o unión de varios elementos que


confluyen en el mismo lugar».

Por ejemplo: en una red de ordenadores cada una de las máquinas es un nodo, y si la
red es Internet, cada servidor constituye también un nodo.
En programación, concretamente en estructuras de datos, un nodo es uno de los
elementos de una lista enlazada, de un árbol o de un grafo. Cada nodo será una
estructura o registro que dispondrá de varios campos, y al menos uno de esos campos
será un puntero o referencia a otro nodo, de forma que, conocido un nodo, a partir de
esa referencia, será posible en teoría tener acceso a otros nodos de la estructura. Los
nodos son herramientas esenciales para uno de los procesadores que lo componen.

En estructuras de datos dinámicas un nodo es un registro que contiene un dato de


interés y al menos un puntero para referenciar (apuntar) a otro nodo. Si la estructura
tiene solo un puntero, la única estructura que se puede construir con él es una lista, si el
nodo tiene más de un puntero ya se pueden construir estructuras más complejas como
árboles o grafos.

También podría gustarte