1 / 22

ESTRUCTURAS DE DATOS I

ESTRUCTURAS DE DATOS I. Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos. Estructuras de Datos: Conceptos. Conjunto de datos de tipos iguales o diferentes que se relacionan entre si y que se pueden operar como un todo. Datos Simples

Download Presentation

ESTRUCTURAS DE DATOS I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Estructuras de Datos: Conceptos • 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, Carácter, Lógico Arreglos, Registros, Archivos, Cadenas Estáticos Datos Estructurados Se refieren a un grupo de casillas de memoria Dinámicos Listas, Arboles, Grafos

  3. Dinámica Durante la ejecución del programa el tamaño de la estructura puede cambiar Estática Durante la ejecución del programa el tamaño de la estructura no cambia Estructuras de Datos: Implementación • Para implementar alguna estructura de datos, primero es necesario tener muy claro cómo va a ser el manejo de memoria. • La diferencia entre estructuras estáticas y dinámicas es el manejo de memoria.

  4. Estructuras de DatosTema: Memoria EstáticaSubtema: Conceptos de Arreglos • Definición: Colección finita, homogenea y ordenada de elementos. Finita: Porque todo arreglo tiene un límite. Homogenea: Porque todos los elementos son del mismo tipo. Ordenada: Porque se puede determinar cuál es el enésimo elemento. • Un arreglo tiene dos partes: Componentes e índices C1 C2 .... Cn Componentes i0 i1 in Índices • Componentes: Hacen referencia a los elementos que forman el arreglo. • Índices: Permiten referirse a los componentes del arreglo en forma individual.

  5. Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos Unidimensionales • Son los arreglos más simples y constan de un solo índice, tambien se llaman vectores. • Notación: Podría ser de diferentes maneras. Por ej: Array [0...9] de enteros: Vector Vector: x 14 43 .... 4 Componentes x0 x1 x9 Índices • X hace referencia a todo el vector, mientras que x0, o x1 hace referencia los elementos en forma individual

  6. Suma Suma + x[2] X[2] 15 X[i] 15 X[i+2] 15 Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos Unidimensionales • Los arreglos se almacenan en forma adyacente, así que su representación en memoria es: X0 ,Dirección z; X1 ,Dirección z+1; Xn ,Dirección z+n • Cada elemento del arreglo se puede procesar como si fuera una variable simple.Ej: i 3 • Sobre los vectores se pueden realizar las siguientes operaciones: Lectura/Escritura, Asignación, Actualización(ins, eli, Mod), Ordenamiento y Búsqueda.

  7. Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos Bidimensionales • Estos arreglos constan de dos índices, tambien se llaman matrices. • Notación: Podría ser de diferentes maneras. Por ej: Array [0...2, 0...2] de enteros: Matriz Matriz: M 0 1 2 Indices 34 43 90 0 • Operaciones: Lectura, Escritura, Asignación. 83 2 41 1 56 75 3 2 Componentes

  8. Domicilio Calle Numero Ciudad Estructuras de DatosTema: Memoria EstáticaSubtema: Registros(Estructuras) • Un registro es una colección de datos, que pueden ser de diferentes tipos. Cada uno de sus elementos se llama Campo. • Notación: Podría ser de diferentes maneras. Por ej: Tipo registro: Domicilio Entero: Calle Entero: Numero Cadena: Ciudad Fin Tipo Domicilio: dir • El acceso a los campos se hace así: variable_registro.id_campo. • Por Ej: dir.Calle, dir.Numero, dir.Ciudad.

  9. Vector T N N N S S S T T 0 1 2 Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos y Registros • Se pueden presentar las siguientes combinaciones: • Arreglos de Registros: Cada elemento del registro es un arreglo. Tipo registro: Cliente Cadena: Nombre Cadena: Teléfono Real: Saldo Fin Tipo Array [0...2] de Cliente: Vector Notación: Vector[0].Nombre

  10. Dirección Cll Num Ciu Nombre Saldo Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos y Registros • Registro Anidado: Por lo menos un campo del registro es de tipo registro. Tipo registro: Domicilio Entero: Calle Entero: Numero Cadena: Ciudad Fin Tipo Tipo registro: Cliente Cadena: Nombre Domicilio: Dirección Real: Saldo Fin Tipo Cliente Notación: Cliente.Nombre Cliente.Dirección.Calle

  11. Estudiante Notas Nombre Código Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos y Registros • Registro con Arreglos: Por lo menos un campo del registro es un array. Array [0...2] de Real:Vector Tipo registro: Estudiante Cadena: Nombre Cadena: Código Vector: Notas Fin Tipo Notación: Estudiante.Nombre Estudiante. Notas[0]

  12. cont ptrcont 2 29DC Estructuras de DatosTema: Memoria DinámicaSubtema: Apuntadores • Las variables contienen valores especificos, las variables apuntador contienen direcciones de memoria de otras variables. • La variable “ptrcont” contiene la dirección de memoria de la variable “cont” • 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.

  13. Estructuras de DatosTema: Memoria DinámicaSubtema: Apuntadores • Operadores: Una variable apuntador responde a dos operadores: • Operando de Dirección(&): Que devuelve la dirección de su operando. Por ej: Entero Y, *ptry Y 5 Ptry &Y • Operando de Indirección(*): Que devuelve el alias de su operando. Por ej: Entero Y, *ptry Y 5 Ptry &Y Escribir(*Ptry)

  14. Estructuras de DatosTema: Memoria DinámicaSubtema: Asignación 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.

  15. . . ptrcont 5 7 null Estructuras de DatosTema: Memoria DinámicaSubtema: Conceptos de Listas • Una lista es una colección de elementos, generalmente, llamados nodos. • En gral 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.

  16. Estructuras de DatosTema: Memoria DinámicaSubtema: 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.

  17. ptrcont ptrcont ptrcont null null . . . . . . . . ptrcont . . . . 7 7 5 5 7 5 5 7 null Estructuras de DatosTema: Memoria DinámicaSubtema: Tipos de Listas • Simplemente Encadenada • Circular • Doblemente Encadenada • Circular Doblemente Encadenada

  18. . . ptrcont 5 7 null Estructuras de DatosTema: Memoria DinámicaSubtema: Listas de Acceso Restringido • Pilas: Lista de elementos a la cuál 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.

  19. Estructuras de DatosTema: Memoria DinámicaSubtema: 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.

  20. Estructuras de DatosTema: Memoria DinámicaSubtema: Arboles • Son la estructura no-lineal más importante en computación. • 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.

  21. Estructuras de DatosTema: Memoria DinámicaSubtema: Conceptos de Arboles • Es una estructura jerárquica aplicada sobre una colección de elementos llamados nodos. Uno de los cuales es llamado raíz. • Además se crea una relación de parentesco entre los nodos de forma que hay términos como padre, hijo, hermano, antecesor, sucesor, ancestro, etc. Para definir un árbol se necesita recursión. • Se utilizan para representar formulas matemáticas, organizar información, árboles genealógicos, enumeración de capítulos y secciones de un libro, etc.

  22. A C G E B H F D J K L I Estructuras de DatosTema: Memoria DinámicaSubtema: Representación de Arboles • Diagramas de Venn : • Anidación de paréntesis : • (A(B(D(I),E,F(J,K)),C(G,H(L))))

More Related