36
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I Ing. Víctor Andrés Ochoa Ing. Víctor Andrés Ochoa Correa Correa

Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

  • Upload
    lauren

  • View
    186

  • Download
    6

Embed Size (px)

DESCRIPTION

Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I. Ing. Víctor Andrés Ochoa Correa. 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: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Arreglos Unidimensionales y Bidimensionales

ESTRUCTURAS DE DATOS I

Ing. Víctor Andrés Ochoa CorreaIng. Víctor Andrés Ochoa Correa

Page 2: Arreglos Unidimensionales y Bidimensionales 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: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

¿Qué es una Estructura de Datos?

Una Una estructura de datosestructura de datos es una forma de organizar un es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima su manipulación. Un dato elemental es la mínima información que se tiene en un programa.(ejemplos de información que se tiene en un programa.(ejemplos de datos elementales serían int, float, char,etc…)datos elementales serían int, float, char,etc…)

Lo que se pretende con las estructuras de datos es facilitar Lo que se pretende con las estructuras de datos es facilitar un esquema lógico para manipular los datos en función del un esquema lógico para manipular los datos en función del problema que haya que tratar y el algoritmo para problema que haya que tratar y el algoritmo para resolverlo. resolverlo.

Page 4: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

¿Qué es una Estructura de Datos?

En algunos casos la dificultad para resolver un problema En algunos casos la dificultad para resolver un problema radica en escoger la estructura de datos adecuada. Y, en radica en escoger la estructura de datos adecuada. Y, en general, la elección del algoritmo y de las estructuras de general, la elección del algoritmo y de las estructuras de datos que manipulará estarán muy relacionadas. datos que manipulará estarán muy relacionadas.

Page 5: Arreglos Unidimensionales y Bidimensionales 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 6: Arreglos Unidimensionales y Bidimensionales 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 7: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

¿Arreglos o arrays?

Un arreglo (array) es una colección de datos Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben posiciones consecutivas de memoria y reciben un nombre común. un nombre común.

Page 8: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Arreglos

Para referirse a un determinado elemento de Para referirse a un determinado elemento de un array se deberá utilizar un índice, que un array se deberá utilizar un índice, que especifique su posición relativa en el array. especifique su posición relativa en el array. Un arreglo es una colección finita, Un arreglo es una colección finita, homogénea y ordenada de elementos. homogénea y ordenada de elementos.

Page 9: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

FinitaFinita:Todo arreglo tiene un límite; es :Todo arreglo tiene un límite; es decir,debe determinarse cuál será el número decir,debe determinarse cuál será el número máximo de elementos que podrán formar máximo de elementos que podrán formar parte del arreglo. parte del arreglo. HomogéneaHomogénea: Todos los elementos del : Todos los elementos del arreglo deben ser del mismo tipo. arreglo deben ser del mismo tipo. OrdenadaOrdenada: Se puede determinar cuál es el : Se puede determinar cuál es el primer elemento, el segundo, el tercero,.... y primer elemento, el segundo, el tercero,.... y el n-ésimo elmento. el n-ésimo elmento.

Page 10: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Los arreglos se clasifican de acuerdo con el Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así se número de dimensiones que tienen. Así se tienen los:tienen los:Unidimensionales (vectores)Unidimensionales (vectores)

Bidimensionales (tablas o matrices)Bidimensionales (tablas o matrices)

Multidimensionales (tres o más dimensiones)Multidimensionales (tres o más dimensiones)

Page 11: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Unidimensionales y bidimensionales

Page 12: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Page 13: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Si no existieran los arreglos

Suponga que se desea desarrollar un programa Suponga que se desea desarrollar un programa para:para:

1.1. Leer una lista de calificaciones de un examenLeer una lista de calificaciones de un examen

2.2. Encontrar su mediaEncontrar su media

3.3. Escribir una lista de las calificaciones mayores Escribir una lista de las calificaciones mayores que la mediaque la media

4.4. Ordenar la lista de las calificaciones en orden Ordenar la lista de las calificaciones en orden ascendente.ascendente.

Page 14: Arreglos Unidimensionales y Bidimensionales 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 15: Arreglos Unidimensionales y Bidimensionales 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 16: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Arreglos unidimensionales

Están formados por un conjunto de elementos Están formados por un conjunto de elementos de un mismo tipo de datos que se almacenan de un mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian por bajo un mismo nombre, y se diferencian por la posición que tiene cada elemento dentro del la posición que tiene cada elemento dentro del arreglo de datos. arreglo de datos.

Page 17: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Al declarar un arreglo, se debe inicializar sus Al declarar un arreglo, se debe inicializar sus elementos antes de utilizarlos. Para declarar elementos antes de utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un un arreglo tiene que indicar su tipo, un nombre único y la cantidad de elementos que nombre único y la cantidad de elementos que va a contener va a contener

Page 18: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Page 19: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Partes de un arreglo

Los componentesLos componentes

Los índicesLos índices

Page 20: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Los componentes. Hacen referencia a los Los componentes. Hacen referencia a los elementos que forman el arreglo, es decir, a elementos que forman el arreglo, es decir, a los valores que se almacenan en cada una de los valores que se almacenan en cada una de las casillas del mismo. las casillas del mismo.

Page 21: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Los índices. Permiten hacer referencia a los Los índices. Permiten hacer referencia a los componentes del arreglo en forma individual, componentes del arreglo en forma individual, especifican cuántos elementos tendrá el especifican cuántos elementos tendrá el arreglo y además, de qué modo podrán arreglo y además, de qué modo podrán accesarse esos componentesaccesarse esos componentes..

Page 22: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Page 23: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Operaciones con vectores

Lectura/ escrituraLectura/ escritura

AsignaciónAsignación

Actualización (inserción, eliminación, modificación)Actualización (inserción, eliminación, modificación)

Recorrido (acceso secuencial)Recorrido (acceso secuencial)

OrdenaciónOrdenación

BúsquedaBúsqueda

Page 24: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Sea Sea arrearre un arreglo de 70 elementos enteros un arreglo de 70 elementos enteros con índices enteros. Su representación nos con índices enteros. Su representación nos

queda: queda:

Page 25: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Sea Sea bool bool un arreglo de 26 elementos un arreglo de 26 elementos booleanos con índices de tipo caracter. Su booleanos con índices de tipo caracter. Su

representación nos queda: representación nos queda:

Page 26: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Lectura

El proceso de lectura de un arreglo consiste El proceso de lectura de un arreglo consiste en leer y asignar un valor a cada uno de sus en leer y asignar un valor a cada uno de sus elementos. Normalmente se realizan con elementos. Normalmente se realizan con estructuras repetitivas, aunque pueden usarse estructuras repetitivas, aunque pueden usarse estructuras selectivas. Usamos los índices estructuras selectivas. Usamos los índices para recorrer los elementos del arreglo:para recorrer los elementos del arreglo:desde i = 1 hasta 70 hacerdesde i = 1 hasta 70 hacerleer ( arre[i])leer ( arre[i])fin_desde fin_desde

Page 27: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Escritura

Es similar al caso de lectura, sólo que en vez Es similar al caso de lectura, sólo que en vez de leer el componente del arreglo, lo de leer el componente del arreglo, lo escribimos.escribimos.             leer (N)             leer (N)             desde i = 1 hasta N hacer             desde i = 1 hasta N hacer               escribir (arre[i])               escribir (arre[i])             fin_desde              fin_desde

Page 28: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Asignación

No es posible asignar directamente un valor a No es posible asignar directamente un valor a todo el arreglo; sino que se debe asignar el valor todo el arreglo; sino que se debe asignar el valor deseado en cada componente. Con una deseado en cada componente. Con una estructura repetitiva se puede asignar un valor a estructura repetitiva se puede asignar un valor a todos los elementos del vector.todos los elementos del vector.Por ejemplo:Por ejemplo:         arre[1]  =120 (asignación de un valor          arre[1]  =120 (asignación de un valor constante único a una casilla del vector)constante único a una casilla del vector)         arre[3] =arre[1] / 4 (asignar una operación)          arre[3] =arre[1] / 4 (asignar una operación)

Page 29: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Se puede asignar un valor constante a todos Se puede asignar un valor constante a todos los elementos del vector:los elementos del vector:

desde i = 1 hasta 5 hacerdesde i = 1 hasta 5 hacer          arre[i] =3          arre[i] =3          fin_desde          fin_desde

O bienO bien           arre  =3 (con arre del tipo arreglo)           arre  =3 (con arre del tipo arreglo)

Page 30: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Inicialización

Para inicializar con cero todos los elementos Para inicializar con cero todos los elementos del arreglo:del arreglo:

                        desde i = 1 hasta 70 hacerdesde i = 1 hasta 70 hacer                arre[i] ¬ 0                arre[i] ¬ 0

                          fin_desdefin_desde

Page 31: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Acceso Secuencial (recorrido)

El acceso a los elementos de un vector puede El acceso a los elementos de un vector puede ser para leer en él o para escribir (visualizar ser para leer en él o para escribir (visualizar su contenido). su contenido). Recorrido del vector es la Recorrido del vector es la acción de efectuar una acción general sobre acción de efectuar una acción general sobre todos los elementos de ese vector. todos los elementos de ese vector.

Page 32: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Actualización

Incluye añadir (insertar), borrar o modificar Incluye añadir (insertar), borrar o modificar algunos de los ya existentes. Se debe tener en algunos de los ya existentes. Se debe tener en

cuenta si el arreglo está o no ordenado. cuenta si el arreglo está o no ordenado. Añadir datos a un vector consiste en agregar Añadir datos a un vector consiste en agregar

un nuevo elemento al final del vector, siempre un nuevo elemento al final del vector, siempre que haya espacio en memoria.que haya espacio en memoria.

Page 33: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Estructuras de DatosTema: Memoria EstáticaSubtema: Arreglos Bidimensionales Estos arreglos constan de dos índices, también se llaman Estos arreglos constan de dos índices, también 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 34: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Arreglo bidimensional

Es un conjunto de datos homogéneo, finito y Es un conjunto de datos homogéneo, finito y ordenado, donde se hace referencia a cada ordenado, donde se hace referencia a cada elemento por medio de dos índices. elemento por medio de dos índices.

El primero se utiliza para los renglones (filas) El primero se utiliza para los renglones (filas) y el segundo para las columnas. y el segundo para las columnas.

Page 35: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

También puede definirse como También puede definirse como un arreglo de un arreglo de arreglos.arreglos. Internamente en memoria se Internamente en memoria se reservan MxN posiciones consecutivas para reservan MxN posiciones consecutivas para almacenar todos los elementos del arreglo. almacenar todos los elementos del arreglo.

Page 36: Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I

Declaración de una matriz