Creación y Manipulación de Filas con Punteros por el Método Circular Doblemente Ligado en Microsoft Visual C++ 2005
- 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 |