estructuras de datos - parte i arreglos

14
Luis Fernando Muñoz Pantoja ESTRUCTURAS DE DATOS – ESTRUCTURAS DINAMICAS Luis Fernando Muñoz Pantoja Ingeniero de Sistemas [email protected] Copyright 2010 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados

Upload: luis-fernando

Post on 05-Jul-2015

84 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estructuras de Datos - Parte i Arreglos

Luis Fernando Muñoz Pantoja

ESTRUCTURAS DE DATOS –

ESTRUCTURAS DINAMICAS

Luis Fernando Muñoz Pantoja

Ingeniero de Sistemas

[email protected]

Copyright 2010 Luis Fernando Muñoz Pantoja

Ingeniero de SistemasDerechos reservados

Page 2: Estructuras de Datos - Parte i Arreglos

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

Page 3: Estructuras de Datos - Parte i Arreglos

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

Page 4: Estructuras de Datos - Parte i Arreglos

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

Page 5: Estructuras de Datos - Parte i Arreglos

DEFINICION ARREGLOS

ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS

23 de Agosto de 20105 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja

Page 6: Estructuras de Datos - Parte i Arreglos

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

Page 7: Estructuras de Datos - Parte i Arreglos

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

Page 8: Estructuras de Datos - Parte i Arreglos

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

Page 9: Estructuras de Datos - Parte i Arreglos

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

Page 10: Estructuras de Datos - Parte i Arreglos

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

Page 11: Estructuras de Datos - Parte i Arreglos

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

Page 12: Estructuras de Datos - Parte i Arreglos

ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS

23 de Agosto de 201012 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja

Page 13: Estructuras de Datos - Parte i Arreglos

ESTRUCTURAS DE DATOS - ESTRUCTURAS DINAMICAS

23 de Agosto de 201013 Universidad Panamericana - Ing. Luis Fernando Muñoz Pantoja

Page 14: Estructuras de Datos - Parte i Arreglos

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