Estructuras de Datos - Parte i Arreglos
-
Upload
luis-fernando -
Category
Documents
-
view
84 -
download
0
Transcript of Estructuras de Datos - Parte i Arreglos
Luis Fernando Muñoz Pantoja
ESTRUCTURAS DE DATOS –
ESTRUCTURAS DINAMICAS
Luis Fernando Muñoz Pantoja
Ingeniero de Sistemas
Copyright 2010 Luis Fernando Muñoz Pantoja
Ingeniero de SistemasDerechos reservados
DEFINICIONES
� MANEJO DE MEMORIA DINÁMICA Es también llamadaalmacenamiento libre (freestore) y en estos casos el programadorsolicita (new) memoria para almacenar un objeto y es responsable deliberarla (delete) para que pueda ser reutilizada por otros objetos.
� Es aquella que se reserva en tiempo de ejecución después de leer losdatos y de conocer el tamaño exacto del problema a resolver. El sitio
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
� Es aquella que se reserva en tiempo de ejecución después de leer losdatos y de conocer el tamaño exacto del problema a resolver. El sitiodonde se almacenan los objetos se le denomina HEAP = MONTÍCULOpero el sitio preciso donde se encuentra tal montículo depende delcompilador y el tipo de puntero utilizado en l reserva de memoriadinámica.
� Puntero (apuntador): un puntero o apuntador es un tipo especial devariable que almacena el valor de una dirección de memoria la cualpuede ser de una variable individual, de un elemento de un arreglo,una estructura u objeto de una clase y se anota de la siguientemanera:
23 de Agosto de 20102 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
DEFINICIONES� Tipo de apuntador + nombre de la variable.
� Int * Pint; puntero a un entero.
� Char * Pchar; puntero de carácter.
� Fecha * Pfecha; puntero objeto de la clase fecha.
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
� Independientemente del tamaño del objeto apuntado por una variablepuntero el valor almacenado por esta será el de una única dirección dememoria, por este motivo no existen diferencias sintácticas entrepunteros a elementos individuales y punteros a elementos a unarreglo o una clase.
� Sintáxis para requerir y liberar memoria dinámica• Variable individual Array de elementos
� Reserva de memoriaint * a = new int; int * a = new int [N];� Liberación de memoriadelete a;delete [] a;
23 de Agosto de 20103 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
DEFINICION ARREGLOS� Un arreglo está formado por un número fijo de elementos contiguos
de un mismo tipo. Al tipo se le llama tipo base del arreglo. Los datos
individuales se llaman elementos del arreglo.
� Para definir un tipo estructurado arreglo, se debe especificar el tipobase y el número de elementos.
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
base y el número de elementos.
� Un array se caracteriza por :
� Almacenar los elementos del arreglo en posiciones de memoriacontinua.
� Tener un único nombre de variable que representa a todos loselementos, y éstos a su vez se diferencian por un índice o subíndice.
� Acceso directo o aleatorio a los elementos individuales del arreglo.
� Tipos: Unidimensionales y Bidimensionales
23 de Agosto de 20104 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
DEFINICION ARREGLOS
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
23 de Agosto de 20105 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
USOS DE LOS ARREGLOS� Almacenar datos consecutivos
� “ingrese una lista de precios de artículos...”
� “la lista de nombres de personal...”
� Listas predefinidas
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
� Listas predefinidas
� Días de la semana
� Meses del año
� Zonas de la ciudad
23 de Agosto de 20106 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
OPERACIONES PRINCIPALES� Recorrido
� Inserción
� Eliminación
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
� Ordenamiento
� Búsqueda
23 de Agosto de 20107 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
EJEMPLO� Vector de 15 posiciones con números. Eliminar la posición 10
� Correr el resto de posiciones
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
11
23 de Agosto de 20108 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
55
44
33
22
11
CODIGO DEL EJEMPLO'Definición del arreglo de 15 posicionesDim UnosNumerosUnosNumeros = Array(61,58,78,27,53,21,99,53,73,15,98,69,9,5,88)
'Eliminación de la posición 10
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
'Eliminación de la posición 10'pero es la 9 si la primera es 0Dim iFor i = 9 To UBoundUBound((UnosNumerosUnosNumeros))-1UnosNumeros(i) = UnosNumeros(i+1)
Next
'Blanqueado de la última posiciónUnosNumeros(UBoundUBound((UnosNumerosUnosNumeros))) = Null
23 de Agosto de 20109 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
CODIGO DEL EJEMPLO'Despliegue de los contenidos
Dim Fila1,Fila2
Fila1 = "<TR>"
Fila2 = "<TR>"
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
For i = 0 To UBoundUBound((UnosNumerosUnosNumeros))
Fila1 = Fila1 & "<TD Align=Right>" & (i+1) & "</TD>"
Fila2 = Fila2 & "<TD Align=Right>" & UnosNumeros(i) & "</TD>"
Next
Fila1 = Fila1 & "</TR>"
Fila2 = Fila2 & "</TR>"
Document.Write "<Table Border=1>" & Fila1 & Fila2 & "</Table>"
23 de Agosto de 201010 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
ARREGLOS BIDIMENSIONALES� Almacenan datos en dos dimensiones
� Como una matriz
� Requiere dos índices
Indice de filas
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
� Indice de filas
� Indice de columnas
� También se llaman matrices
� Pueden ser de n dimensiones
23 de Agosto de 201011 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
23 de Agosto de 201012 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
23 de Agosto de 201013 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja
EJEMPLOS� Pagos realizados por empleado
� Historial de últimos 6 meses
� Obtener salario promedio
� Calcular Bono 14
ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS
� Calcular Bono 14
� Almacenar el directorio de un edificio
� Por piso
� Oficina, Empresa, Contacto, Teléfono
23 de Agosto de 201014 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja