Estructuras de datos
En
la vida práctica se puede encontrar una cantidad enorme de información en forma
de datos, mismos que se encuentran organizados de tal manera que se puede
disponer de la información que estos arrojan, estando organizados facilitan el
acceso a su manejo. Toda la información obtenida de los datos y que pasa por
nuestros ojos se encuentra organizada de manera tal que, facilita la
productividad y competitividad.
Una
estructura de datos es una colección de datos que se caracterizan por la forma
en cómo están organizados los datos, así como, las relaciones y operaciones
posibles que por ellos se definen con base a reglas previamente definidas.
Durante el curso se definieron diferentes tipos de estructuras, para este caso,
las estructuras de datos en cadena, tal es el caso de los vectores de números
ordenados en forma sucesiva y las estructuras en forma de matriz, en las cuales
los datos se encuentran ordenados en filas y columnas. Las estructuras de datos
son indispensables en la programación a fin de proporcionar un panorama claro
del resultado que se espera como resultado.
Tipos de datos
Existen
diferentes tipos de datos que a su vez pueden ser de tipo int, float, char,
byte, double, long. y formar diferentes tipos de estructuras de datos, como
pueden ser estáticas o dinámicas, siendo las estáticas aquellas en las que el
tamaño de de memoria ocupado es definido antes que sea arrancado el programa
que los usa. Por otro lado, las estructuras dinámicas no tienen limitación por
su tamaño, a excepción de la memoria disponible en la computadora en la que
vaya a ser utilizada.
Estructura de datos en cadena
En
el caso de las estructuras en cadena como en el ejemplo inicial del curso, pueden
estar definidas como fijas o variables, para el caso práctico, se toman
caracteres numéricos o alfanuméricos, como pueden ser una palabra, una frase, una matrícula, etc. La manera de concatenar
en el caso práctico del curso fue por medio de comilla simple, ejemplo: {'H','O','L','A'};
Arreglos
Los
arreglos son conjuntos de datos del mismo tipo, lo cual es su principal
característica y se encuentran almacenados en forma adyacente. Cada uno de los
datos contenidos son llamados elementos y se encierran entre corchetes [ ]
indicando de esta manera que hablamos de un arreglo, estos elementos pueden ser
procesados de manera separada, solo es necesario indicar la posición del
elemento dentro del arreglo; el número de elementos dentro de un arreglo se
especifica desde que es creado una vez que se declara desde el main.
Existen
tres tipos de arreglos, a saber: unidimensionales, bidimensionales y
multidimiensionales.
Los
unidimensionales, en estos los elementos se encuentran ordenados en forma
contínua o lineal para este caso.
Los
bidimensionales, son aquellos que están estructurados por elementos del mismo
tipo al igual que los anteriores, pero están ordenados en filas y columnas y se
leen en ese orden, primeramente las filas y enseguida las columnas, esto para
ubicar un elemento en específico.
Los
multidimensionales, estos son similares
a los bidimensionales, con la particularidad de que los elementos
(virtualmente) son apilados unos sobre otros formando una especie de cubos,
pero el programa nos los muestra como si fueran tablas para ubicar a cada uno
de los elementos.
Litas simples
Las
listas con conjuntos de datos ordenados en la cual cada elemento tiene un
predecesor, a excepción del primer elemento y
un único sucesor, a excepción del último; en el caso de las listas, se utiliza
el procedimiento de últimas entradas, primeras salidas; la longitud de las
listas puede reducirse o aumentarse según lo crea necesario el usuario, cada
elemento recibe el nombre de nodo, el cual contiene un campo para almacenar el
dato y un puntero en un extremo, a través del cual podrá enlazarse a otro nodo
formando la secuencia de elementos.
Listas simples enlazadas
Una lista
enlazada es una de las estructuras de datos, y puede ser usada para implementar otras estructuras de
datos. Consiste en una secuencia de nodos, en los que se guardan campos de
datos a elección del usuario y una o dos referencias o punteros al nodo
anterior o posterior. El principal beneficio de las listas enlazadas respecto a
las simples es que el orden de los elementos enlazados puede ser diferente al
orden de almacenamiento en la memoria, permitiendo que el orden de recorrido de la lista sea
diferente al de almacenamiento. La lista enlazada básica es la lista enlazada
simple la cual tiene un enlace por nodo. Este enlace apunta al siguiente nodo y
si se refiere al último, su valor será null.
Pilas
Las
pilas son estructuras lineales a las que se puede acceder a sus datos solo por
un extremo, que es el último elemento que haya sido ingresado, el método para
acceder es de últimas entradas, primeras salidas. A estas estructuras se les
puede afectar solo por dos operaciones, estas son: añadir elemento y eliminar
elemento. Se manejan dos punteros, uno para indicar en donde empieza la pila y
el otro en donde termina o cual es el último elemento, que a su vez, será el
primero en salir en caso de hacer una eliminación. Si se desea eliminar un
elemento de la pila, es necesario verificar que la estructura tenga elementos,
de lo contrario, el programa nos enviará un mensaje de que la pila está vacía.
Colas
Las
colas son estructuras lineales en la que los datos van siendo ingresados por el
final y los eliminados por el frente, a diferencia de las pilas, en las colas
se eliminan los elementos partiendo desde el primero en entrar a la estructura,
es decir; primeras entradas primeras salidas. Para las colas, se necesitan dos
variables, que son: frente y fin que son representados por punteros, uno a cada
lado del elemento
|
frente
|
dato
|
fin
|
Las
colas facilitan la interconexión entre un ordenador y una impresora por
ejemplo, en donde la información a imprimir se va guardando en el orden que va
entrando a la memoria de la impresora.
Árboles
Los
árboles son estructuras no lineales en las que cada elemento o nodo está unido
a otros o por debajo de él; un árbol uno o dos nodos denominados hijos. Al nodo
principal se le llama raíz, al momento de ingresar un nodo, se debe evaluar si
el valor del nodo a ingresar es mayor o menor que raíz, si en menor se aloja
del lado izquierdo y si es mayor, se aloja del lado derecho, si debajo del no
hijo, hay necesidad de alojar más nodos, se sigue el mismo procedimiento,
considerando el valor del nodo a agregar, para saber si va por los de menor o
mayor valor, para colocarlo ya sea a la izquierda o a la derecha, según sea el
caso; y si ya no hubiera más nodos por agregar, al último o últimos en la
jerarquía, se los denomina nodos hijos o simplemente hojas. Los árboles se
utilizan para realizar bases de datos en
donde la búsqueda y almacenamiento sean los más óptimos.
Para
recorrer un árbol se debe llevar un procedimiento de manera sistemática,
procedimientos conocidos como pre orden, in orden y post orden, el
procedimiento de cada uno es el siguiente:
Pre
orden.-
1. Se visita la raíz
2. Recorrer el subárbol izquierdo en pre orden
3. Recorrer el subárbol derecho en pre orden
In
orden.-
1. Recorrer el subárbol izquierdo in orden
2. Visitar la raíz
3. Recorrer el subárbol derecho
Post
orden.-
1. Recorrer el subárbol izquierdo en post orden
2. Recorrer el subárbol derecho en post orden
3. Visitar la raíz
La
característica de los árboles es que en ellos cada nodo puede estar conectado a
subárboles, que a su vez tienen una estructura similar, en la misma forma de
árbol.
Teoría de grafos
Los
grafos tienen como objetivos estudiar las interrelaciones entre elementos que
interactúan unos con otros y obtener con ellos el mayor aprovechamiento en la
solución a problemas de la vida cotidiana, estos están formados por vértices,
nodos y flechas.
La
teoría de grafos es aplicada a diferentes campos como lo pueden ser las redes
de alcantarillado, redes eléctricas, rutas aéreas, terrestres, marítimas,
logística, en la geografía, etc. En fin, en donde haya necesidad de organizar
elementos para maximizar recursos.
Conclusión
Las
estructuras de datos son elementales en todos los campos la de computación y
aun cuando no se implemente como tales, estructurar de manera ordenada los
elementos en cualquiera de las áreas a trabajar, éstos deben ser ordenados con
claridad y de manera sistemática. El conocimiento aprendido es de valor en
todos los ámbitos de la vida cotidiana y más en el campo del manejo de la
información, considerando que existe un acervo muy amplio en materia de la
informática, acrecentando las posibilidades de aportar un mejor aprovechamiento
de los recursos que nos provee la información, pues para cada situación existe
un procedimiento adecuado y óptimo con el fin de reducir tiempos y otros
recursos de suma importancia que si se saben aprovechar, se traducen en
desarrollo y crecimiento.
El
estudioso de la computación habrá de engrandecer lo que hasta ahora se tiene
recorrido y aportar en la medida de las posibilidades al desarrollo de nuevas y
mejores herramientas, pues no solo se trata de jugar con dispositivos de manera
virtual, sino, como se vio en el caso de los temas tratados, que son
aplicaciones de la vida cotidiana y con los que todos de manera directa o
indirecta tenemos poco o mucho que ver y hacer, el conocimiento se extiende en
la medida que se sumerge en la aventura de buscar y encontrar nuevas y mejores
cosas.
Las
estructura de datos no son solo ejercicios informáticos que tengan como
objetivo el desarrollo de la inteligencia y las habilidades lógicas, como
tampoco son herramientas que sean aplicables a los mismos casos, pues para cada
caso deberá elegirse correctamente los programas adecuados para la solución de
problemas, pues no es la misma medicina para todos los males.