Professional Documents
Culture Documents
ESTRUCTURAS DE DATOS
(Recopilado de Java a Fondo, 2ed. ING. PABLO ADGUSTO SZNAJDLEDER, Alfaomega - 2013)
Las estructuras de datos representan formas de almacenar y organizar conjuntos de datos del mismo tipo. Adems, deben
Estructuras dinmicas
Las estructuras dinmicas permiten almacenar una cantidad variable de datos. Pueden crecer o decrecer segn sea
necesario incrementando o decrementando la cantidad de memoria que ocupan.
En general la estructuras dinmicas se forman encadenando unidades de informacin llamadas nodo.
Una estructura dinmica se compone de un conjunto de nodos enlazados entre s ms un conjunto de operaciones
asociadas a travs de las cuales podemos manipular y acceder al conjunto de nodos y a la informacin que estos
contienen.
UNIVERSIDAD DE EL SALVADOR
Cuando implementamos programas que modelen el mundo real nos topamos con un problema, en los lenguajes de
programacin slo contamos con unos cuantos tipos de datos y en el mundo real no es suficiente con esto. En
problemas reales es frecuente que la informacin que se maneje no sea de
Tipo elemental, es decir; no solamente es de tipo entero, real, carcter, etc.,
Sino que es mucho ms compleja. Por esta y otras razones debemos de ampliar nuestra nocin de tipo de dato.
Un tipo de dato es el conjunto de valores que puede tomar una variable. Como ejemplos tenemos a los bolanos que
solo pueden tomar los valores CIERTO y FALSO.
Matemticamente podemos extender el concepto de tipo de dato a Tipo de Datos Abstractos. Un TDA es un modelo
matemtico que define un tipo de dato con un conjunto de operaciones definidas sobre ese tipo de dato. Es posible que
esas operaciones den resultados pertenecientes a otro tipo de dato, pero por lo menos una de ellas, debe de dar un
resultado del tipo del TDA en cuestin. Para poder implantar un TDA mediante un lenguaje de programacin se
requiere de una Estructura de Datos. Una ED es un conjunto de variables de distintos tipos interconectadas entre s de
diferentes maneras. Las formas de representar una ED y sus interconexiones dependen del lenguaje de programacin
con el que se trabaja.
La unidad bsica de una ED es llamada celda. En un lenguaje de programacin las celdas se representan comnmente
mediante registros. Un registro es un conjunto de variables de diferente tipo referenciadas por un mismo nombre, cada
variable se denomina campo. Los mecanismos mediante los cuales se interconectan las celdas son:
Arreglos
Colecciones
En el caso de los arreglos se maneja un arreglo de celdas
Si manejamos apuntadores, las celdas tienen 2 campos: uno para el dato que se almacena y el otro es un apuntador a
la siguiente celda. La ltima celda apunta al apuntador NULO, para indicar que no sigue otra. Esto puede visualizarse
de la siguiente manera:
manzana
mandarina
naranja
pia
NULO
Fundamentalmente, un tipo de datos es un conjunto de valores y un grupo de operaciones sobre tales valores. Este
conjunto y estas operaciones forman una estructura matemtica que se implementa usando una estructura particular
de datos de hardware o software.
Un TAD es una estructura algebraica, o sea, un conjunto de objetos con ciertas operaciones definidas sobre ellos.
Piense, por ejemplo, en la calculadora: los elementos que maneja son cantidades numricas y las operaciones que
tiene definidas sobre stas son las operaciones aritmticas.
UNIVERSIDAD DE EL SALVADOR
Es posible observar que las operaciones de un TAD son de diferentes clases: algunas de ellas nos deben permitir crear
objetos nuevos, otras determinar su estado, unas construir otros objetos a partir de algunos ya existentes.
Tipo: agrupacin de elementos con caractersticas similares.
Abstracto: no concreto, conceptual.
Dato: informacin que una computadora puede entender.
Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos mediante una especificacin
independiente de cualquier representacin.
TAD = Representacin (datos o valores)+ operaciones (funciones o procedimientos)
Formalmente un TAD es una declaracin de datos empaquetada junto con la operaciones que son significativas para
el tipo de datos, en otras palabras encapsulamos los datos y las operaciones sobre esos datos y ocultamos estos
detalles a la vista del usuario
UNIVERSIDAD DE EL SALVADOR
La especificacin informal de un TAD tiene como objetivo describir los datos del tipo y las operaciones segn la
funcionalidad que tienen. No sigue normas rgidas al hacer la especificacin, simplemente se indica, de forma comprensible,
lo que hace cada operacin.
A continuacin, cada una de las operaciones con sus argumentos y una descripcin funcional en lenguaje natural.
conjunto (coleccin de elementos sin duplicidades, pueden estar en cualquier orden, se usa para
representar los conjuntos matemticos con sus operaciones).
TAD
P ASO DOS :
Operaciones, existen numerosas operaciones matemticas sobre conjuntos, algunas de ellas:
Conjuntovacio. : Crea un conjunto sin elementos .
Aadir(Conjunto, elemento).: Comprueba si el elemento forma parte del conjunto, en caso negativo es aadido. La operacin modifica al conjunto.
Retirar(Conjunto, elemento).: En el caso de que el elemento pertenezca al conjunto es eliminado de ste. La operacin modifica al conjunto.
Pertenece(Conjunto, elemento). : Verifica si el elemento forma parte del conjunto, en cuyo caso devuelve cierto.
Es vacio(Conjunto).: Verifica si el conjunto no tiene elementos conjunto, en cuyo caso devuelve cierto
Cardinal(Conjunto).: Devuelve el nmero de elementos del conjunto.
Unin(Conjunto, Conjunto).:Realiza la operacin matemtica de la unin de dos conjuntos. La operacin devuelve un conjunto con los elementos
dos argumentos.
UNIVERSIDAD DE EL SALVADOR
Sintaxis
Operacin (Tipo argumento, elemento )-> tipo resultado
Al hacer una especificacin formal siempre hay operaciones definidas por s mismas, se consideran constructores del
TAD. Se puede decir que mediante estos constructores se generan todos los posibles valores del TAD. Normalmente, se
elige como constructor la operacin que inicializa (por ejemplo, Conjuntovacio en el TAD Conjunto), y la operacin que
aade un dato o elemento (esta operacin es comn a la mayora de los tipos abstractos de datos).
TAD Conjunto(coleccin de elementos sin duplicidades, pueden estar en cualquier orden, se usa para representar los conjuntos matemticos con sus
operaciones).
Sintaxis
Conjuntovacio -> Conjunto
Aadir(Conjunto, Elemento) -> Conjunto
Retirar(Conjunto, Elemento) -> Conjunto
Pertenece(Conjunto, Elemento) -> boolean
Esvacio(Conjunto) -> boolean
Cardinal(Conjunto) -> entero
Union(Conjunto, Conjunto) -> Conjunto
3.
4.
5.
6.
7.
8.
9.
Permite una mejor conceptualizacin y modelizacin del mundo real. Mejora la representacin y la comprensibilidad. Clarifica
los objetos basados en estructuras y comportamientos comunes.
Mejora la robustez del sistema. Si hay caractersticas subyacentes en los lenguajes permitiendo la especificacin del tipo de
cada variable, los tipos abstractos de datos permiten la comprobacin de tipos para evitar errores de tipo en tiempo de
ejecucin.
Mejora el rendimiento (prestaciones). Para sistemas tipiados (tipificados), el conocimiento de los objetos permite la
optimizacin de tiempo de compilacin.
Separa la implementacin de la especificacin. Permite la modificacin y mejora de la implementacin sin afectar a
la interfaz pblica del tipo abstracto de dato.
Permite la extensibilidad del sistema. Los componentes de software reutilizables son ms fciles de crear y mantener.
Recoge mejor la semntica del tipo. Los tipos abstractos de datos agrupan o localizan las operaciones y la
representacin de atributos.
Finalidad de uso: no necesitamos conocer los detalles internos del tipo de datos abstracto, solo la especificacin
que es mucho ms simple.
Desarrollo y mantenimiento: desarrollar y modificar cdigo es mucho ms sencillo. Localizar los errores es
mucho ms simple ya que es ms fcil su aislamiento.
Reusabilidad: el tipo de dato abstracto se puede usar en distintos programas.
Un programa que maneja un TAD lo hace teniendo en cuenta las operaciones o funcionalidad que tiene, sin interesarse por la
representacin fsica de los datos. Es decir, los usuarios de TAD se comunican con ste a partir de la interfaz que ofrece el TAD
mediante funciones de acceso.