Está en la página 1de 16

16/08/2011

ESTRUCTURAS DE DATOS
Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos

DBD II Ing. Luis Reyes

Concepto
En programacin, una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato elemental es la mnima informacin que se tiene en el sistema) con el objetivo de facilitar la manipulacin de estos datos como un todo o individualmente.

16/08/2011

Organizacin
Una estructura de datos define la organizacin e interrelacionamiento de estos, y un conjunto de operaciones que se pueden realizar sobre l. Las operaciones bsicas son: De Alta, adicionar un nuevo valor a la estructura. De Baja, borrar un valor de la estructura. De Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con este valor, en forma SECUENCIAL o BINARIO (siempre y cuando los datos estn ordenados)... Ordenamiento, de los elementos pertenecientes a la estructura. Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

Consideraciones
Cada estructura ofrece ventajas y desventajas en relacin a la simplicidad y eficiencia para la realizacin de cada operacin. De esta forma, la eleccin de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operacin sobre los datos.

16/08/2011

Caractersticas
Pueden descomponerse en los elementos que la forman. La manera en que se colocan los elementos dentro de la estructura afectar la forma en que se realicen los accesos a cada elemento. La colocacin de los elementos y la manera en que se accede a ellos puede ser encapsulada.

Datos Simples
Binarios
Bit Byte

Numricos
Entero Real Coma fija Coma flotante

Alfanumricos
Carcter Cadena

16/08/2011

Estructura de Datos
Arrays (Arreglos)
Vectores Matrices

Registro Tipo de datos algebraico Listas Enlazadas


Listas Simples Listas Dobles Listas Circulares Listas por saltos (Skip lists)

Pilas (stack) Colas (queue)

Estructura de Datos
rboles
rboles Binarios
rbol binario de bsqueda rbol binario de bsqueda autoajustable rboles Rojo-Negro rboles AVL rboles Biselados (rboles Splay)

rboles Multicamino (Multirrama)


rboles B rboles B+ rboles B*

Conjuntos (set) Grafos Tablas Hash

16/08/2011

Estructuras de Datos: Composicin


Conjunto de datos de tipos iguales o diferentes que se relacionan entre si y que se pueden operar como un todo.
Datos Simples Hacen referencia a un nico valor a la vez en memoria Entero, Real, Carcter, Lgico Estticos Arreglos, Registros, Archivos, Cadenas

Datos Estructurados Se refieren a un grupo de casillas de memoria Dinmicos Listas, Arboles, Grafos

Estructuras de Datos - Implementacin


Para implementar alguna estructura de datos, primero es necesario tener muy claro cmo va a ser el manejo de memoria. La diferencia entre estructuras estticas y dinmicas es el manejo de memoria.

Esttica Durante la ejecucin del programa el tamao de la estructura no cambia

Dinmica Durante la ejecucin del programa el tamao de la estructura puede cambiar

16/08/2011

Memoria Esttica -Conceptos de Arreglos


Definicin: Coleccin finita, homogenea y ordenada de elementos. Finita: Porque todo arreglo tiene un lmite. Homogenea: Porque todos los elementos son del mismo tipo. Ordenada: Porque se puede determinar cul es el ensimo elemento. Un arreglo tiene dos partes: Componentes e ndices C1 C2 .... Cn i0 i1 in Componentes

ndices Componentes: Componentes: Hacen referencia a los elementos que forman el arreglo. ndices: Permiten referirse a los componentes del arreglo en ndices: forma individual.

Memoria Esttica -Arreglos Unidimensionales


Son los arreglos ms simples y constan de un solo ndice, tambin se llaman vectores. Notacin: Podra ser de diferentes maneras. Por ej.: Array [0...9] de enteros: Vector Vector: x
14 43 .... 4 x0 x1 x9 Componentes ndices

X hace referencia a todo el vector, mientras que x0, o x1 hace referencia los elementos en forma individual

16/08/2011

Memoria Esttica -Arreglos Unidimensionales


Los arreglos se almacenan en forma adyacente, as que su representacin en memoria es: X0 ,Direccin z; X1 ,Direccin z+1; Xn ,Direccin z+n Cada elemento del arreglo se puede procesar como si fuera una variable simple.Ej:
Suma X[2] i X[i] Suma + x[2] 15 3 15

X[i+2] 15 Sobre los vectores se pueden realizar las siguientes operaciones: Lectura/ Lectura/Escritura, Asignacin, Actualizacin(ins, eli, Mod), Ordenamiento y Bsqueda.

Memoria Esttica -Arreglos Bidimensionales


Estos arreglos constan de dos ndices, tambin se llaman matrices. Notacin: Podra ser de diferentes maneras. Por ej.: Array [0...2, 0...2] de enteros: Matriz Matriz: M 0 1 2 0 1 2 41 Indices Operaciones: Lectura, Escritura, Asignacin.

34 43 90 83 2 56 75 3 Componentes

16/08/2011

Memoria Esttica -Registros(Estructuras)


Un registro es una coleccin de datos, que pueden ser de diferentes tipos. Cada uno de sus elementos se llama Campo. Notacin: Podra ser de diferentes maneras. Por ej: Tipo registro: Domicilio Entero: Calle Domicilio Entero: Numero Cadena: Ciudad Calle Numero Ciudad Fin Tipo Domicilio: dir

El acceso a los campos se hace as: variable_registro.id_campo. variable_registro.id_campo. Por Ej: dir.Calle, dir.Numero, dir.Ciudad. Ej: dir.Calle, dir.Numero, dir.Ciudad.

Memoria Esttica -Arreglos y Registros


I.

Se pueden presentar las siguientes combinaciones: Arreglos de Registros: Cada elemento del registro es un arreglo.
Vector T S 0 N T S 1 N T S 2

Tipo registro: Cliente Cadena: Cadena: Nombre N Cadena: Cadena: Telfono Real: Saldo Real: Fin Tipo Array [0...2] de Cliente: Vector [0...2 Cliente:

Notacin: Vector[0].Nombre

16/08/2011

Memoria Esttica -Arreglos y Registros


II.

Registro Anidado: Por lo menos un campo del registro es de tipo registro.


Tipo registro: Domicilio Entero: Calle Entero: Numero Cadena: Ciudad Nombre Fin Tipo Tipo registro: Cliente Cadena: Cadena: Nombre Domicilio: Domicilio: Direccin Real: Saldo Real: Fin Tipo

Cliente
Direccin

Cll Num Ciu


Notacin: Cliente.Nombre Cliente.Direccin.Calle

Saldo

Memoria Esttica -Arreglos y Registros


III.

Registro con Arreglos: Por lo menos un campo del registro es un array.


Array [0...2] de Real:Vector [0...2 Real: Tipo registro: Estudiante Cadena: Cadena: Nombre Cadena: Cdigo Vector: Vector: Notas Fin Tipo

Estudiante
Notas

Nombre

Cdigo

Notacin: Estudiante.Nombre Estudiante. Notas[0]

16/08/2011

Memoria Dinmica -Apuntadores


Las variables contienen valores especificos, las variables apuntador contienen direcciones de memoria de otras variables.
La variable ptrcont contiene la direccin de memoria de la variable cont ptrcont 29DC

cont 2

Las variables apuntador estan asociadas a un tipo de dato. Por ej. Si el valor de cont es entero la variable apuntador ptrcont debe ser de tipo entero.

Memoria Dinmica -Apuntadores


Operadores: Una variable apuntador responde a dos operadores: Operando de Direccin(&): Que devuelve la direccin de su operando. Por ej: Entero Y, *ptry Y 5 Ptry &Y Operando de Indireccin(*): Que devuelve el alias de su operando. Por ej: Entero Y, *ptry Y 5 Ptry &Y Escribir(*Ptry)

10

16/08/2011

Memoria Dinmica -Asignacin de Memoria


Es el proceso por el cual a una estructura, sea cual fuere, se le coloca a apuntar una variable del mismo tipo y sobre ese apuntador se reserva o se libera memoria de acuerdo a si la estructura crece o decrece.

Memoria Dinmica -Conceptos de Listas


Una lista es una coleccin de elementos, generalmente, llamados nodos. En general un nodo tiene 2 partes: Un campo de info que ser del tipo de datos que se quiera almacenar en la lista. Un campo de tipo apuntador que se utiliza para establecer un enlace con otro nodo de la lista. Si es el ultimo nodo su valor es null. Ya no es necesario que los nodos se guarden en forma contigua. ptrcont 5

null

11

16/08/2011

Memoria Dinmica -Operaciones con Listas


Crear: Define el primer elemento de la lista. Insertar: Que coloca nuevos nodos al principio o al final del nodo dado. Recorrer: Que visita o atiende todos o algunos de los nodos de la lista bajo un criterio dado. Eliminar: Que borra un nodo dado. Se puede eliminar el 1 nodo, el ultimo, el que tenga un info x o el anterior o posterior al que tenga una info x.

Memoria Dinmica -Tipos de Listas


Simplemente Encadenada
ptrcont 5 . 7 . null

Circular
ptrcont 5

Doblemente Encadenada
ptrcont null

Circular Doblemente Encadenada


ptrcont

. 5. . 7.

null

. 5. . 7.

12

16/08/2011

Memoria Dinmica -Listas de Acceso Restringido


Pilas: Lista de elementos a la cul se puede

insertar o eliminar elementos nicamente por uno de sus extremos. Los elementos se eliminan en forma inversa a los que se insertaron, es decir, el ultimo elemento que ingresa es el primero que se elimina(LIFO). Se pueden representar con arreglos o listas.
ptrcont 5

null

Memoria Dinmica -Listas de Acceso Restringido Colas: Lista de elementos en la que el primero en entrar es el primero en salir(FIFO). Se pueden representar con arreglos o listas.

13

16/08/2011

Memoria Dinmica -Arboles


Son la estructura no-lineal ms importante en computacin. No-lineal porque a cada elemento(nodo) le pueden seguir varios elementos(nodos). Los arboles AVL(balanceados) son las mejores estructuras para trabajar con memoria principal. Los arboles B y los B+ son las mejores estructuras para trabajar en memoria secundaria.

Memoria Dinmica -Conceptos de Arboles


Es una estructura jerrquica aplicada sobre una coleccin de elementos llamados nodos. Uno de los cuales es llamado raz. Adems se crea una relacin de parentesco entre los nodos de forma que hay trminos como padre, hijo, hermano, antecesor, sucesor, ancestro, etc. Para definir un rbol se necesita recursin. Se utilizan para representar formulas matemticas, organizar informacin, rboles genealgicos, enumeracin de captulos y secciones de un libro, etc.

14

16/08/2011

Terminologa de un rbol
HIJO. X es hijo de Y, s y solo s el nodo X es apuntado por Y. Tambin se dice que X es descendiente directo de Y. PADRE. X es padre de Y s y solo s el nodo X apunta a Y. Tambin se dice que X es antecesor de Y. HERMANO. Dos nodos sern hermanos si son descendientes directos de un mismo nodo. HOJA. Se le llama hoja o terminal a aquellos nodos que no tienen ramificaciones (hijos). NODO INTERIOR. Es un nodo que no es raz ni terminal. GRADO. Es el nmero de descendientes directos de un determinado nodo. GRADO DEL ARBOL Es el mximo grado de todos los nodos del rbol. NIVEL. Es el nmero de arcos que deben ser recorridos para llegar a un determinado nodo. Por definicin la raz tiene nivel 1. ALTURA. Es el mximo nmero de niveles de todos los nodos del rbol. PESO. Es el nmero de nodos del rbol sin contar la raz. LONGITUD DE CAMINO. Es el nmero de arcos que deben ser recorridos para llegar desde la raz al nodo X. Por definicin la raz tiene longitud de camino 1, y sus descendientes directos longitud de camino 2 y as sucesivamente.

Tablas Hash
Una tabla hash o mapa hash es una estructura de datos que asocia llaves o claves con valores. La operacin principal que soporta de manera eficiente es la bsqueda: permite el acceso a los elementos (telfono y direccin, por ejemplo) almacenados a partir de una clave generada (usando el nombre o nmero de cuenta, por ejemplo). Funciona transformando la clave con una funcin hash en un hash, un nmero que la tabla hash utiliza para localizar el valor deseado.

15

16/08/2011

Memoria Dinmica -Representacin de Arboles


Diagramas de Venn :
A B D I E F J K C G H L

Anidacin de parntesis : (A(B(D(I),E,F(J,K)),C(G,H(L))))

16

También podría gustarte