Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad I-ESTRUCTURA DE LA INFORMACION
Unidad I-ESTRUCTURA DE LA INFORMACION
Estructura de la Información
Desventajas
Ventajas
Buenos resultados a nivel de área o departamento.
Desventajas
Carlos Juárez
29
Datos 62
1,69
8
3
Historia Médica
Información
Carlos
Paciente:
Juárez
Edad: 29 años
Peso: 62 kilos
Tipo de dato Abstracto : Es un tipo de dato definido de forma única mediante un tipo y un
conjunto dado de operaciones definidas sobre ese tipo.
Ej:
TD : Booleano { true, false}
TDA:{true, false} + {AND, OR, NOT}
EJ:
Legajo Apellido y Nombre Domicilio DNI Día Mes Año
Puntero ( Variable puntero, referencia, enlace, apuntador)
Es un tipo de dato simple cuyo valor es la dirección de otra variable de otro tipo
denominada variable referencial. Esta variable referencial se crea en tiempo de
ejecución.
1000 P
1A00
Dirección 1A00
López Mario
Dato
P Contiene una dirección de memoria Variable referencial dinámica
New devuelve un espacio de memoria, por ejemplo New(x) donde X es
variable puntero.
Con las variables puntero puedo utilizar los operadores de asignación y los de
comparación e igualdad.
Ej:
q=P P 2A1A V. Referencial
q 2A1A
1A00
q 2100
Juan
27A0
27A0
t 10A0 Carla
1A00
TDA Puntero= se puede definir como un tipo de dato simple cuyo valor es una
dirección de memoria y sus operaciones son la asignación y comparación de
puntero.
Pila
Es una estructura lineal a cuyos datos se los puede acceder, insertar, eliminar
por un solo extremo, denominada tope o cima (TOP).
Se utiliza la estructura llamada LIFO (Last Input Firts output)
“El ultimo en entrar es el primero en salir”
Ej:
Insertar
Pila
Implementación Dinámica Usamos las Listas encadenadas (LSE)
Diagramas: Implementación estática
Crear pila()
Tope = 0
Tope=0 Tope=Max
Pila vacía= false Pila vacía= True Pila llena= false Pila llena= True
Insertar ( Elem) Eliminar (P ,Tope)
!Pila vacía()
!Pila llena()
H=P(Tope)
Tope=Tope + 1 “Error pila
“Error pila Vacía”
llena” Tope=Tope -1
P(Tope) = Elem
Retornar H
Diagramas: Implementación Dinámicamente
Pila vacía ()
Tope=null
Pila vacía= false Pila vacía= True
Eliminar ()
X=null
Insertar (elem)
x =new Nodo()
Sale A B c Ingresa
ABC ABC
Operaciones básicas para el tipo de dato Cola:
❖ Insertar (insertar un elemento a la Cola)
❖ Eliminar (eliminar un elemento de la Cola)
Otras operaciones :
Crear Cola (darle existencia)
Cola Vacía (No puedo Eliminar si la Cola está vacía )
Cola llena (No puedo Insertar si la Cola está llena )
Cola
Implementación Dinámica Usamos las Listas encadenadas (LSE)
Diagramas: Implementación estática
Crear Cola()
F=0
R=0
F=R R =Max
cola vacía= false Cola Vacía= True cola vacía= false Cola vacía= True
Insertar ( Q, Elem) Eliminar (Q,x)
!Cola vacía()
!Cola llena()
X=Q(F+1)
R=R + 1 “Error Cola
“Error COLA Vacía”
llena” F= F + 1
Q(R) = Elem
Retornar X
Diagramas: Implementación Dinámicamente
Cola vacía ()
Q=null
F=null
Cola vacía= false Cola vacía= True
Insertar () Eliminar ()
X=New Nodo()
!Cola vacía()
X=F
!Cola vacía() Error cola
R=X vacia
R.Ps=X F=F.Ps
R=X F=R
Retorna X
Listas
Un lista lineal es una estructura de datos formada por un conjunto de
elementos ordenados, donde el numero de elemento puede variar.
Ej:
La lista A puede estar formado por: A= A1, A2, A3, ………An
Si n=0 La lista esta vacía. “Lista nula”
75 28
L =10 B 40 D
40
A 75 C 28
Una lista Encadenada:
Esta formado por elementos llamados nodos, que es una porción de memoria.
Donde cada uno de esos nodos está formado como mínimo por dos campo, un
campo llamado información que puede ser de cualquier tipo y un campo
llamado puntero.
Nodo
El orden físico no coincide por que depende de los espacios libres encontrados.
Los nodos están distribuidos en la memoria en diferentes partes pero
enlazados.
Ej:
1700 L
4300
2815 3A0A 2100
4300
L = Null
false True
Insertar lista vacía ()
L = Null X=A100
A100
New(x)
Carlos Null
Info(x)=elem
Ps(x)=Null
L=x
Insertar primero()
P=L
New(x)
Info(x)=elem
Ps(x)= L
L=x
1700
L =X= 4300
2815 3A0A
X=190A 4300
New(x)
Info(x)=elem
Ps(q)= x
Ps(x)=p
1700
L =X= 4300 q P
0G
4300 2815 3A0A
13
Carlos 2815 Darío 3A0A Martin Null
X=130G
Juan 2815
Insertar Ultimo(P,q,elem)
Ps(P)!= Null
New(x)
Info(x)=elem
Ps(q)= x
Ps(x)=Null P
X=130G
1700
L =X= 4300
q
Juan Null
0G
4300 2815 3A0A
13
Carlos 2815 Darío 3A0A Martin Null
Ej: Eliminación del primer elemnto(P,elem)
P=L
L=Ps(P)
L = 4300 P
4300 2815 3A0A
Carlos 2815 Darío 3A0A Martin Null
L = 2815
Ej: Eliminación en el medio (P,q,elem)
L!=Null
Ps(q)=Ps(p)
L = 4300
q P
4300 2815 3A0A
Carlos 2815 Darío 3A0A Martin Null
3A0A
Ej: Eliminación el Ultimo (P,q,elem)
L!=Null
Ps(q)=Ps(p)
L = 4300 q P
NULL
Estructura de datos – Árboles
Los Árboles son las estructuras de datos mas utilizadas, pero también una de las
mas complejas, Los Árboles se caracterizan por almacenar sus nodos en forma
jerárquica y no en forma lineal como las LISTAS, COLAS, PILAS, etc.
Un árbol de grado N esta formado por nodos con N apuntadores cada uno de
ellos es apuntado por un único nodo, salvo uno, y apunta a un árbol de grado M
denominado sub árbol .
Datos importantes de los Árboles
Aristas
Hijos
Fig. 2: La imagen muestra de forma gráfica cuales son los nodos Raíz,
Rama, Hoja
Fig.3: La siguiente imagen muestra de forma gráfica los nodos Padre,
Hijo y Hermanos
Los arboles a demás de los nodos tiene otras propiedades importantes que son
utilizadas en diferente ámbitos los cuales son:
Nivel: Nos referimos como nivel a cada generación dentro del árbol. Por
ejemplo, cuando a un nodo hoja le agregamos un hijo, el nodo hoja pasa a ser
un nodo rama pero a demas el árbol crece una generación por lo que el Árbol
tiene un nivel mas. Cada generación tiene un número de Nivel distinto que las
demás generaciones.
Un árbol vacío tiene 0 niveles
El nivel de la Raíz es 1
El nivel de cada nodo se calculado contando cuantos nodos existen sobre el,
hasta llegar a la raíz + 1, y de forma inversa también se podría, contar cuantos
nodos existes desde la raíz hasta el nodo buscado + 1.
Altura: Es el máximo nivel alcanzado por alguno de sus nodo.
Peso: Es la cantidad de nodos que tiene un árbol.
Grado del nodo: Al numero de descendiente directos del nodo.
Grado del Árbol: Es el mayor de los grados de los nodos.
Grado de A = 2 Grado de A = 3
Grado de F = 0 Grado de M = 0
Sub-Árbol: Conocemos como Sub-Árbol a todo Árbol generado a partir de una
sección determinada del Árbol, Por lo que podemos decir que un Árbol es un
nodo Raíz con N Sub-Árboles.
Árbol n-ario
Los arboles n-arios son aquellos arboles donde el número máximo de hijos por
nodo es de N, en la figura 7 podemos apreciar dos árboles con grado 2 y grado 3,
estos dos arboles también los podemos definir como Árbol n-ario con n = 2 y n=3
respectivamente.
Árboles binarios
Esta estructura se caracteriza por que cada nodo solo puede tener máximo 2
hijo, dicho de otra manera es un Árbol n-ario de Grado 2
Árbol binario lleno: Es aquel que el que todos los nodos tiene cero o 2 hijos con
excepción de la Raíz.
Fig. 10: Podemos apreciar que el árbol de la derecha no esta lleno ya que uno
de sus nodos no cumple con la condición cero o 2 hijos. ya que el nodo C solo
tiene un hijo.
Árbol binario perfecto: Es un Árbol lleno en donde todos las Hojas están en el
mismo Nivel.
Fig. 11: En la imagen podemos apreciar que el árbol de la izquierda tiene todas sus hojas al mismo nivel y que
además esta lleno, lo que lo convierte en un árbol binario perfecto. Sin embargo, del lado derecho podemos
ver que aunque el árbol esta lleno no tiene todas las hojas al mismo nivel lo que hace que no sea un árbol
binario perfecto pero si lleno.
Recorrido de un Árbol Binario
Recorrer un árbol es visitar los nodos del árbol una sola vez. Recorremos un
árbol en 3 formas .
Pre-orden: R I D
• El recorrido inicia en la Raíz y luego se recorre en pre-orden cada unos de los
sub-árboles de izquierda a derecha.
• Esta definición puede ser un poco compleja de entender por lo que mejor les
dejo la siguiente imagen.
Pos-orden: I D R
• Se recorre el pos-orden cada uno de los sub-árboles y al final se recorre la raíz.
Entre-orden:I R D
• Se recorre en in-orden el primer sub-árbol, luego se recorre la raíz y al final se
recorre en in-orden los demás sub-árboles.
Preorden(R) Posorden(R)
R !=null R !=null
Info(R) Posorden(Pi.(R))
Posorden(Pd.(R))
Preorden(Pi.(R))
Entreorden(R) Info(P)
Preorden(Pd.(R))
R !=null
Entreorden(Pi.(R))
Info(R)
Entreorden(Pd.(R))
Entre- orden
Fin…
Gracias por su atención!!!