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

ESTRUCTURAS DE DATOS I

  • Upload
    verne

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: ESTRUCTURAS DE DATOS I

ESTRUCTURAS DE DATOS I

Conocer, comprender y analizar Conocer, comprender y analizar algunos de los principales tipos de algunos de los principales tipos de

estructuras de datosestructuras de datos

Page 2: ESTRUCTURAS DE DATOS I

Estructuras de Datos: Conceptos Conjunto de datos de tipos iguales o Conjunto de datos de tipos iguales o

diferentes que se relacionan entre si y que diferentes que se relacionan entre si y que se pueden operar como un todo.se pueden operar como un todo.

Entero, Real, Carácter, Lógico

Datos SimplesHacen referencia a un único valor a la vez en memoria

Datos EstructuradosSe refieren a un grupo de casillas de memoria

Estáticos

Dinámicos

Arreglos, Registros, Archivos, Cadenas

Listas, Arboles, Grafos

Page 3: ESTRUCTURAS DE DATOS I

Estructuras de Datos: Implementación Para implementar alguna estructura de datos, Para implementar alguna estructura de datos,

primero es necesario tener muy claro cómo va a primero es necesario tener muy claro cómo va a ser el manejo de memoria.ser el manejo de memoria.

La diferencia entre estructuras estáticas y La diferencia entre estructuras estáticas y dinámicas es el manejo de memoria.dinámicas es el manejo de memoria.

EstáticaEstáticaDurante la ejecución del programa el tamaño de la estructura no cambia

DinámicaDinámicaDurante la ejecución del programa el tamaño de la estructura puede cambiar

Page 4: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Conceptos de Arreglos

Definición: Colección finita, homogenea y ordenada de Definición: Colección finita, homogenea y ordenada de elementos. elementos. FinitaFinita: Porque todo arreglo tiene un límite. : Porque todo arreglo tiene un límite. HomogeneaHomogenea: Porque todos los elementos son del mismo tipo. : Porque todos los elementos son del mismo tipo. OrdenadaOrdenada: Porque se puede determinar cuál es el enésimo : Porque se puede determinar cuál es el enésimo elemento.elemento.

Un arreglo tiene dos partes: Componentes e índicesUn arreglo tiene dos partes: Componentes e índices

C1 C2 .... Cn

i0 i1 in

Componentes

Índices ComponentesComponentes: Hacen referencia a los elementos que forman el : Hacen referencia a los elementos que forman el

arreglo.arreglo. ÍÍndicesndices: Permiten referirse a los componentes del arreglo en : Permiten referirse a los componentes del arreglo en

forma individual.forma individual.

Page 5: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos Unidimensionales Son los arreglos más simples y constan de un solo Son los arreglos más simples y constan de un solo

índice, tambien se llaman índice, tambien se llaman vectoresvectores.. Notación: Podría ser de diferentes maneras. Por ej:Notación: Podría ser de diferentes maneras. Por ej:Array [0...9] de enteros: VectorArray [0...9] de enteros: VectorVector: xVector: x

14 43 .... 4

x0 x1 x9

Componentes

Índices X hace referencia a todo el vector, mientras que X hace referencia a todo el vector, mientras que

xx00, o x, o x11 hace referencia los elementos en forma hace referencia los elementos en forma individualindividual

Page 6: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos Unidimensionales

Los arreglos se almacenan en forma adyacente, así que su Los arreglos se almacenan en forma adyacente, así que su representación en memoria es: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 Cada elemento del arreglo se puede procesar como si fuera una variable simple.Ej:variable simple.Ej:

Suma Suma + x[2] X[2] 15

i 3X[i] 15

X[i+2] 15 Sobre los vectores se pueden realizar las siguientes operaciones: Sobre los vectores se pueden realizar las siguientes operaciones:

LecturaLectura//Escritura, Asignación, Actualización(ins, eli, Mod), Escritura, Asignación, Actualización(ins, eli, Mod), Ordenamiento y Búsqueda.Ordenamiento y Búsqueda.

Page 7: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos Bidimensionales Estos arreglos constan de dos índices, tambien se llaman Estos arreglos constan de dos índices, tambien se llaman

matricesmatrices.. Notación: Podría ser de diferentes maneras. Por ej:Notación: Podría ser de diferentes maneras. Por ej:

Array [0...2, 0...2] de enteros: MatrizArray [0...2, 0...2] de enteros: Matriz

Matriz: MMatriz: M

34 43 90

0 1 2

Componentes

Indices

83 2 41

56 75 3

0

1

2

Operaciones:Operaciones: Lectura, Lectura, Escritura, Asignación.Escritura, Asignación.

Page 8: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Registros(Estructuras)

Un registro es una colección de datos, que pueden ser de diferentes Un registro es una colección de datos, que pueden ser de diferentes tipos. Cada uno de sus elementos se llama tipos. Cada uno de sus elementos se llama CampoCampo..

Notación: Podría ser de diferentes maneras. Por ej:Notación: Podría ser de diferentes maneras. Por ej:Tipo registro: DomicilioTipo registro: Domicilio

Entero: CalleEntero: CalleEntero: NumeroEntero: NumeroCadena: CiudadCadena: Ciudad

Fin TipoFin TipoDomicilio: dirDomicilio: dir

El acceso a los campos se hace así: El acceso a los campos se hace así: variable_registro.id_campovariable_registro.id_campo..

Por Ej: dir.Calle, dir.Numero, dir.Ciudad.Por Ej: dir.Calle, dir.Numero, dir.Ciudad.

Numero CiudadCalle

Domicilio

Page 9: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos y Registros

Se pueden presentar las siguientes Se pueden presentar las siguientes combinaciones:combinaciones:

I.I. Arreglos de RegistrosArreglos de Registros: Cada elemento : Cada elemento del registro es un arreglo.del registro es un arreglo.

Tipo registro: Tipo registro: ClienteClienteCadenaCadena: : NombreNombreCadenaCadena: : TeléfonoTeléfonoRealReal: : SaldoSaldo

Fin TipoFin TipoArray [0...Array [0...22] de ] de ClienteCliente: : VectorVector

Vector

N T S N T S N T S

0 1 2

Notación:Notación:Vector[0].NombreVector[0].Nombre

Page 10: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos y Registros

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

Tipo registro: DomicilioTipo registro: DomicilioEntero: CalleEntero: CalleEntero: NumeroEntero: NumeroCadena: CiudadCadena: Ciudad

Fin TipoFin TipoTipo registro: Tipo registro: ClienteCliente

CadenaCadena: : NombreNombreDomicilioDomicilio: : DirecciónDirecciónRealReal: : SaldoSaldo

Fin TipoFin Tipo

Cliente

DirecciónDirección

Cll Num CiuNombre Saldo

Notación:Notación:Cliente.NombreCliente.NombreCliente.Dirección.CalleCliente.Dirección.Calle

Page 11: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos y Registros

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

Array [0...Array [0...22] de ] de RealReal::VectorVector Tipo registro: Tipo registro: EstudianteEstudiante

CadenaCadena: : NombreNombreCadena: CódigoCadena: CódigoVectorVector: : NotasNotas

Fin TipoFin Tipo

Estudiante

NotasNotas

Nombre Código

Notación:Notación:Estudiante.NombreEstudiante.NombreEstudiante. Notas[0]Estudiante. Notas[0]

Page 12: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Apuntadores

Las variables contienen valores especificos, Las variables contienen valores especificos, las variables apuntador contienen direcciones las variables apuntador contienen direcciones de memoria de otras variables.de memoria de otras variables.

2cont

29DCptrcont

La variable “ptrcont” La variable “ptrcont” contiene la dirección contiene la dirección de memoria de la de memoria de la variable “cont”variable “cont”

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

Page 13: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Apuntadores OperadoresOperadores: Una variable apuntador responde a dos operadores:: Una variable apuntador responde a dos operadores:

Operando de Dirección(&)Operando de Dirección(&): Que devuelve la dirección de su : Que devuelve la dirección de su operando. Por ej:operando. Por ej:

Entero Y, *ptryEntero Y, *ptryYY 55PtryPtry &Y&Y

Operando de Indirección(*)Operando de Indirección(*): Que devuelve el alias de su operando. : Que devuelve el alias de su operando. Por ej:Por ej:

Entero Y, *ptryEntero Y, *ptryYY 55PtryPtry &Y&YEscribir(*Ptry)Escribir(*Ptry)

Page 14: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Asignación de Memoria

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

Page 15: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Conceptos de Listas Una lista es una colección de elementos, generalmente, Una lista es una colección de elementos, generalmente,

llamados llamados nodosnodos.. En gral un nodo tiene 2 partes:En gral un nodo tiene 2 partes:

Un campo de info que será del tipo de datos que se Un campo de info que será del tipo de datos que se quiera almacenar en la lista.quiera almacenar en la lista.

Un campo de tipo apuntador que se utiliza para Un campo de tipo apuntador que se utiliza para establecer un enlace con otro nodo de la lista. Si es el establecer un enlace con otro nodo de la lista. Si es el ultimo nodo su valor es ultimo nodo su valor es nullnull. Ya no es necesario que los . Ya no es necesario que los nodos se guarden en forma contigua.nodos se guarden en forma contigua.

ptrcont5 . 7 . null

Page 16: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Operaciones con Listas

CrearCrear: Define el primer elemento de la lista.: Define el primer elemento de la lista. InsertarInsertar: Que coloca nuevos nodos al principio o : Que coloca nuevos nodos al principio o

al final del nodo dado.al final del nodo dado. RecorrerRecorrer: Que “visita” o “atiende” todos o algunos : Que “visita” o “atiende” todos o algunos

de los nodos de la lista bajo un criterio dado.de los nodos de la lista bajo un criterio dado. EliminarEliminar: Que borra un nodo dado. Se puede : Que borra un nodo dado. Se puede

eliminar el 1º nodo, el ultimo, el que tenga un info eliminar el 1º nodo, el ultimo, el que tenga un info x o el anterior o posterior al que tenga una info x.x o el anterior o posterior al que tenga una info x.

Page 17: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Tipos de Listas

Simplemente EncadenadaSimplemente Encadenada

ptrcont5 . 7 . null

CircularCircular

ptrcont5 . 7 .

Doblemente EncadenadaDoblemente Encadenada

ptrcont

7 . null.5 ..null

Circular Doblemente Circular Doblemente EncadenadaEncadenada

ptrcont

7 ..5 ..

Page 18: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Listas de Acceso Restringido PilasPilas: : Lista de elementos a la cuál se puede Lista de elementos a la cuál se puede

insertar o eliminar elementos únicamente por uno insertar o eliminar elementos únicamente por uno de sus extremos.de sus extremos.

Los elementos se eliminan en forma inversa a los Los elementos se eliminan en forma inversa a los que se insertaron, es decir, el ultimo elemento que que se insertaron, es decir, el ultimo elemento que ingresa es el primero que se elimina(LIFO).ingresa es el primero que se elimina(LIFO).

Se pueden representar con arreglos o listas.Se pueden representar con arreglos o listas.

ptrcont5 . 7 . null

Page 19: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Listas de Acceso Restringido

ColasColas: Lista de elementos en la que el : Lista de elementos en la que el primero en entrar es el primero en primero en entrar es el primero en salir(FIFO).salir(FIFO).

Se pueden representar con arreglos o Se pueden representar con arreglos o listas.listas.

Page 20: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Arboles

Son la estructura no-lineal más importante en Son la estructura no-lineal más importante en computación.computación.

No-lineal porque a cada elemento(nodo) le No-lineal porque a cada elemento(nodo) le pueden seguir varios elementos(nodos).pueden seguir varios elementos(nodos).

Los arboles AVL(balanceados) son las mejores Los arboles AVL(balanceados) son las mejores estructuras para trabajar con memoria principal.estructuras para trabajar con memoria principal.

Los arboles B y los BLos arboles B y los B++ son las mejores son las mejores estructuras para trabajar en memoria secundaria.estructuras para trabajar en memoria secundaria.

Page 21: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Conceptos de Arboles

Es una estructura jerárquica aplicada sobre una Es una estructura jerárquica aplicada sobre una colección de elementos llamados colección de elementos llamados nodosnodos. Uno de los . Uno de los cuales es llamado cuales es llamado raízraíz. .

Además se crea una relación de parentesco entre los Además se crea una relación de parentesco entre los nodos de forma que hay términos como padre, hijo, nodos de forma que hay términos como padre, hijo, hermano, antecesor, sucesor, ancestro, etc. Para definir hermano, antecesor, sucesor, ancestro, etc. Para definir un árbol se necesita recursión.un árbol se necesita recursión.

Se utilizan para representar formulas matemáticas, Se utilizan para representar formulas matemáticas, organizar información, árboles genealógicos, organizar información, árboles genealógicos, enumeración de capítulos y secciones de un libro, etc. enumeración de capítulos y secciones de un libro, etc.

Page 22: ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria DinámicaSubtema: Representación de Arboles

Diagramas de VennDiagramas de Venn : :

A

B

D

I J K

E

C

G

H

L

F

Anidación de paréntesisAnidación de paréntesis : : (A(B(D(I),E,F(J,K)),C(G,H(L))))(A(B(D(I),E,F(J,K)),C(G,H(L))))