PUNTEROSLos punteros son de amplia utilización en programación, muchos lenguajes permiten lamanipulación directa o indirec...
NODOEn programación concretamente en estructura de datos, un nodo es uno de los elementos deuna lista enlazada, de un árbo...
DEFINICION DE CLASE CONFORMANDO NODOclass NodosLista // se define la clase Nodo{        Object datos;     // Campo Informa...
Como la lista es una consecución de muchos nodos es necesario establecer nombre a losnodos y colocarlos a apuntar a algún ...
Para acceder al nodo y escribir valores en sus campos es necesario identificar al Nodo, que eneste caso es P y colocar un ...
CAMPO APUNTADOR DE UN NODOP     ESTE ES EL NODO COMPLETOEsto quiere decir que un nodo debe tener alguna dirección de memor...
Se puede hacer referencia o apuntar un puntero con el campo siguiente                           P.siguiente= Q;           ...
CAMBIO DE APUNTADOR EN LOS NODOSEn la siguiente figura Tenemos 2 nodos en la lista, como se había indicado el Nodo P indic...
Si quisiéramos colocarlo después del primer elemento de la lista debemos indicarle al nodoque apunte a la dirección que co...
RECORRIDO EN UNA LISTAComo se indico anteriormente no se puede perder la referencia al primernodo, por lo cual se crea un ...
Próxima SlideShare
Cargando en…5
×

conceptos de Punteros y Nodos

16.600 visualizaciones

Publicado el

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
16.600
En SlideShare
0
De insertados
0
Número de insertados
1.504
Acciones
Compartido
0
Descargas
293
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

conceptos de Punteros y Nodos

  1. 1. PUNTEROSLos punteros son de amplia utilización en programación, muchos lenguajes permiten lamanipulación directa o indirecta de los mismos. La razón de ser principal de los punterosreside en manejar datos alojados en la zona de memoria dinámica o heap (aunque también sepueden manipular objetos en la zona estática), bien sean datos elementales, objetospertenecientes a una clase (en lenguajes Orientados a Objetos).Un puntero o apuntador es una variable que referencia una región de memoria; enotras palabras es una variable cuyo valor es una dirección de memoria. Si se tiene unavariable p de tipo puntero que contiene una dirección de memoria en la que seencuentra almacenado un valor v se dice que p apunta a v . El programadorutilizará punteros para guardar datos en memoria en muchas ocasiones, de la forma quese describe a continuación. [Memoria] | . | | . | | . | ----- |---------| | p |---->| v | ----- |---------| | . | | . | | . |Trabajar con punteros implica la no manipulación de los datos en sí, sino manejar lasdirecciones de memoria en la cuales estos residen.
  2. 2. NODOEn programación concretamente en estructura de datos, un nodo es uno de los elementos deuna lista enlazada, de un árbol o de un grafo. Cada nodo será una estructura o registro quedispondrá de varios campos, y al menos uno de esos campos será un puntero o referencia aotro nodo, de forma que, conocido un nodo, a partir de esa referencia, será posible en teoríatener acceso a otros nodos de la estructura. Los nodos son herramientas esenciales para laconstrucción de estructuras de datos dinámicas.
  3. 3. DEFINICION DE CLASE CONFORMANDO NODOclass NodosLista // se define la clase Nodo{ Object datos; // Campo Información NodosLista siguiente; //Campo Nodo // datos: que almacena la información // siguiente : Apuntador o enlace a otros nodosNodosLista(Object valor) // Se define un nodo{ datos=valor; siguiente=null;}
  4. 4. Como la lista es una consecución de muchos nodos es necesario establecer nombre a losnodos y colocarlos a apuntar a algún sitio, en el caso del único nodo debe apuntar a NULL.En este caso se crea un nodo llamado P, indicando que es el primero de la lista.P =new NodosLista;Nota:Ojo en este caso no se están utilizando parámetros para la creación del nodo ni parainsertar información en los campos del nodo, a manera de ejemplo se mostrará el proceso deforma manual, pero la idea es parametrizar todos los métodos para la realización yoperaciones de la lista simple
  5. 5. Para acceder al nodo y escribir valores en sus campos es necesario identificar al Nodo, que eneste caso es P y colocar un punto para poder acceder a los campos del nodo, como se muestraa continuación.P.dato= 25;P.siguiente = Null;La representación grafica del Nodo queda de la siguiente forma:
  6. 6. CAMPO APUNTADOR DE UN NODOP ESTE ES EL NODO COMPLETOEsto quiere decir que un nodo debe tener alguna dirección de memoria asignada ¿Cuál? nosabemos, pero se puede saber si se hace referencia a P, cuando se hace referencia a P, seindica todo el nodo tanto el campo info como el campo apuntador.Si se define un nodo, el nodo creado contiene el campo información y el campo siguiente Nodo P y Nodo QCuando se coloca el nombre del nodo haciendo referencia a otro realmente se apunta al nodoindicado P= Q;Nota: Este caso se realiza cuando se desea crear un nodo auxiliar que permita realizar elrecorrido de la lista, como se ha indicado en repetidas ocasiones no se debe perder lareferencia al el primero de la lista.
  7. 7. Se puede hacer referencia o apuntar un puntero con el campo siguiente P.siguiente= Q; P.siguiente = Null; P.siguiente= P;
  8. 8. CAMBIO DE APUNTADOR EN LOS NODOSEn la siguiente figura Tenemos 2 nodos en la lista, como se había indicado el Nodo P indica elPrimero de la lista y el campo siguiente del nodo apunta al siguiente nodo, dicho nodo indicael final de la lista.Necesitamos otro nodo , dicho nodo se llamará QSi lo quisiéramos crear se recurre a la siguiente línea de códigoQ =new NodosLista;Ya sabemos que contiene los dos campos uno para la información y otro para el apuntadorEn este momento el nodo no contiene ni dirección ni información.Si quisiéramos colocarlo al inicio de la lista debemos indicarle al nodo que apunte a PQ.siguiente= P;
  9. 9. Si quisiéramos colocarlo después del primer elemento de la lista debemos indicarle al nodoque apunte a la dirección que corresponde a ese nodo ¿Quién la Sabe? Q.siguiente= P.siguiente;
  10. 10. RECORRIDO EN UNA LISTAComo se indico anteriormente no se puede perder la referencia al primernodo, por lo cual se crea un nodo auxiliar llamado Q para recorrer la lista.Q =new NodosLista;Luego el nodo Q se le asigna la misma dirección que corresponde al nodoPP=Q;Ser comienza el recorrido de la siguiente formaQ= Q.siguiente; a) Se apunta a P. b) Q en estos momentos encabeza la lista. c) Q= Q.siguiente notese que el campo siguiente de Q apunta al siguiente nodo d) Cada vez que se realiza esta instrucción estamos cambiando de posición en la lista, nos vamos desplazando hacia delante de ella, cumpliendo con la filosofía de la estructura los recorridos se hacen hacia adelante.

×