Professional Documents
Culture Documents
ESTRUCTURA DE DATOS
En programacin, una estructura de datos es una forma particular de organizar datos en una
computadora para que pueda ser utilizado de manera eficiente.
Diferentes tipos de estructuras de datos son adecuadas para diferentes tipos de aplicaciones,
y algunos son altamente especializados para tareas especficas.
Las estructuras de datos son un medio para manejar grandes cantidades de datos de manera
eficiente para usos tales como grandes bases de datos y servicios de indizacin de internet.
Por lo general, las estructuras de datos eficientes son clave para disear eficientes algoritmos.
Algunos mtodos formales de diseo y lenguajes de programacin destacan las estructuras
de datos, en lugar de los algoritmos, como el factor clave de organizacin en el diseo
de software.
PILA: Una pila (stack en ingls) es una lista ordenada o estructura de datos en la que el modo
de acceso a sus elementos es de tipo LIFO (del ingls Last In First Out, ltimo en entrar,
primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en
multitud de ocasiones en el rea de informtica debido a su simplicidad y ordenacin implcita
de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar (push), que coloca
un objeto en la pila, y su operacin inversa, retirar (o desapilar, pop), que retira el ltimo
elemento apilado.
En cada momento slo se tiene acceso a la parte superior de la pila, es decir, al ltimo objeto
apilado (denominado TOS, Top of Stack en ingls). La operacin retirar permite la obtencin
de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con
anterioridad), que pasa a ser el nuevo TOS.
Por analoga con objetos cotidianos, una operacin apilar equivaldra a colocar un plato sobre
una pila de platos, y una operacin retirar a retirarlo.
Las pilas suelen emplearse en los siguientes contextos:
Implementacin de recursividad.
A modo de resumen tipo de datos, la pila es un contenedor de nodos y tiene dos operaciones
bsicas: push (o apilar) y pop (o desapilar). 'Push' aade un nodo a la parte superior de la
pila, dejando por debajo el resto de los nodos. 'Pop' elimina y devuelve el actual nodo superior
de la pila. Una metfora que se utiliza con frecuencia es la idea de una pila de platos en una
cafetera con muelle de pila. En esa serie, slo la primera placa es visible y accesible para el
usuario, todas las dems placas permanecen ocultas. Como se aaden las nuevas placas,
cada nueva placa se convierte en la parte superior de la pila, escondidos debajo de cada
plato, empujando a la pila de placas. A medida que la placa superior se elimina de la pila, la
segunda placa se convierte en la parte superior de la pila. Dos principios importantes son
ilustrados por esta metfora: En primer lugar la ltima salida es un principio, la segunda es
que el contenido de la pila est oculto. Slo la placa de la parte superior es visible, por lo que
para ver lo que hay en la tercera placa, el primer y segundo platos tendrn que ser retirados.
Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las
implementaciones modernas de las pilas se suelen aadir ms de uso habitual.
Vaca: devuelve cierto si la pila est sin elementos o falso en caso de que contenga
uno. (empty).
COLA: La particularidad de una estructura de datos de cola es el hecho de que slo podemos
acceder al primer y al ltimo elemento de la estructura. As mismo, los elementos slo se
pueden eliminar por el principio y slo se pueden aadir por el final de la cola.
lista enlazada circular simple, esto nos permite rpidas inserciones al principio, y tambin
permite accesos al primer nodo desde el puntero del ltimo nodo.
Nodos centinelas
A veces las listas enlazadas tienen un nodo centinela (tambin llamado falso nodo o nodo
ficticio) al principio o al final de la lista, el cual no es usado para guardar datos. Su propsito
es simplificar o agilizar algunas operaciones, asegurando que cualquier nodo tiene otro
anterior o posterior, y que toda la lista (incluso alguna que no contenga datos) siempre tenga
un primer y ltimo nodo.
CONCLUSION
Las estructuras de datos y algoritmos constituyen elementos bsicos en el almacenamiento
y tratamiento de la informacin. El conocimiento y entendimiento del concepto de algoritmo,
sus representaciones mtodos que desembocan en el desarrollo de programas constituyen un
paso previo indispensable para introducirse en el mbito de la programacin. Han de
conocerse y manejarse con facilidad los tipos de datos y las tcnicas de creacin,
representacin y refinamiento de algoritmos para la futura construccin de programas de
calidad.