Creación y Manipulación de Filas con Punteros por el Método Circular Doblemente Ligado en Microsoft Visual C++ 2005
Enviado por jaimemontoya
- Primeros Pasos
- Funcionamiento del Programa
- Ejemplo del Programa en Ejecución
- Código del Programa
- Código del Botón Crear Fila
- Código del Botón Agregar Nodo al Final
- Código del Botón Anterior
- Código del Botón Siguiente
- Código del Botón Eliminar Primer Nodo
- Código del Botón Agregar Nodo en la Posición k
- Código del Botón Eliminar Nodo en la Posición k
- Código del Botón Ir al Primer Nodo de Todos
- Código del Botón Ir al Último Nodo de Todos
- Código del Evento Form1_Load
Primeros Pasos
Primeramente, este programa ha sido creado en Microsoft Visual C++ 2005. Los primeros pasos para crearlo son: Abrir Microsoft Visual Studio 2005; hacer clic en el menú Archivo y luego en Nuevo Proyecto…; luego en Tipos de Proyecto, en otros lenguajes, seleccionar Visual C++; después de eso en Plantillas seleccionar Aplicación de Windows Forms; finalmente en ponerle el nombre y la ubicación deseada al proyecto y hacer clic en Aceptar.
Funcionamiento del Programa
Este programa permite crear filas para posteriormente agregar o eliminar nodos a la fila creada. Los nodos pueden ser agregados al final de la fila o en una posición cualquiera (llamada posición "k") determinada por el usuario. Igualmente el programa permite eliminar el primer nodo de la fila así como también eliminar un nodo cualquiera ubicado en la posición "k", que será también determinada por el usuario.
Mediante los botones de navegación el usuario podrá desplazarse al primero de todos los nodos, a un nodo anterior, a un nodo siguiente o al último de todos los nodos.
Es importante notar que se está trabajando con el método o modelo Circular Doblemente Ligado. Esto significa que el primer nodo de la fila tiene como nodo anterior el último nodo de la fila y el último nodo de la fila tiene como nodo siguiente el primer nodo de la fila. El primer nodo de la fila es conocido como "header". En este modelo cada nodo apunta hacia uno nodo siguiente así como también hacia un nodo anterior. Por ejemplo: Supongamos que tenemos una fila que tiene 4 nodos, los punteros funcionarán entonces de la siguiente manera:
El nodo 1 (que es el "header", primer nodo de todos o primer nodo de la fila) apunta hacia el nodo 2 como su nodo siguiente y hacia el nodo 4 (que es el último nodo de todos o el último nodo de la fila) como su nodo anterior. El nodo 2 apunta hacia el nodo 3 como su nodo siguiente y hacia el nodo 1 como su nodo anterior. El nodo 3 apunta hacia el nodo 4 como su nodo siguiente y hacia el nodo 2 como su nodo anterior. Finalmente el nodo 4 apunta hacia el nodo 1 como su nodo siguiente y hacia el nodo 3 como su nodo anterior. Si el usuario decide que la posición "k" es la posición 3, y luego hace clic en el botón "Agregar Nodo en la Posición k", entonces el nodo 3 será el nuevo recién creado/agregado y el nodo que era el 3 pasará a ser el 4, de modo que se correrá un espacio hacia adelante. Por supuesto que los apuntadores deberán tenerse en cuenta también, de modo que el nodo recién agregado en la posición 3 deberá apuntar hacia el nodo que ahora ocupa la posición 4 como su nodo siguiente y hacia el nodo que está en la posición 2 como su nodo anterior. Igualmente el nodo 2 tendrá que dejar de apuntar hacia el nodo siguiente al que estaba apuntando y ahora apuntará al nuevo nodo recién introducido en la posición 3 como su nodo siguiente.
En el caso que el usuario decida agregar un nodo en la posición 1, significa que el "header" será desplazado a la posición 2 y el nuevo "header" será el nodo recién creado/agregado. Lo importante es siempre tener cuidado de enlazar los apuntadores correctamente cada vez que se agrega o elimina un nodo, teniendo especial cuidado de siempre tener en cuenta qué nodo es nuestro "header" o primer nodo de la fila. Cuando se elimine el "header", el nodo de la posición 2 de la fila pasará a ser el nuevo "header", de modo que primer se desconecta el "header", luego se hacen las conexiones de los apuntadores correspondientes y entonces se puede eliminar el primer nodo de la fila, luego de haber asignado al nodo 2 como nuestro nuevo "header".
Téngase presente que se está trabajando con estructuras, esto significa que un nodo debe entenderse para este caso como una estructura de datos, es decir que un nodo contiene tres campos: Nombre y Apellidos, Edad y Salario. Cada uno de los nodos contendrá valores en esos tres campos, pues se está utilizando una estructura personalizada que se creó antes de darle código a cada botón.
Página siguiente |