Sei sulla pagina 1di 18

SEMANA 2 – ESTRUCTURA DE DATOS

ESTRUCTURA DE DATOS

SEMANA 2
Arreglos

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
IACC-2019
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni
utilizar los contenidos para fines comerciales de ninguna clase. 1
SEMANA 2 – ESTRUCTURA DE DATOS

APRENDIZAJES ESPERADOS
• El estudiante será capaz de establecer
elementos de los arreglos, distinguiendo
el uso de arreglos unidimensionales y
bidimensionales para el ordenamiento
de datos.

IACC-2019
2
SEMANA 2 – ESTRUCTURA DE DATOS

APRENDIZAJES ESPERADOS ................................................................................................................. 2


INTRODUCCIÓN ................................................................................................................................... 4
1. ARREGLOS........................................................................................................................................ 5
1.1 CONCEPTO DE ARREGLO UNIDIMENSIONAL .............................................................................. 5
1.2 OPERACIONES CON ARREGLOS UNIDIMENSIONALES ................................................................ 8
1.3 APLICACIONES CON ARREGLOS UNIDIMENSIONALES .............................................................. 10
1.4 CONCEPTOS ASOCIADOS A LOS ARREGLOS BIDIMENSIONALES............................................... 11
COMENTARIO FINAL.......................................................................................................................... 15
REFERENCIAS ..................................................................................................................................... 16

IACC-2019
3
SEMANA 2 – ESTRUCTURA DE DATOS

INTRODUCCIÓN
Las computadoras fueron diseñadas, Por lo general, para resolver los problemas
principalmente, como una herramienta capaz planteados se debe hacer uso de conjuntos de
de realizar operaciones de cálculo datos y no con datos simples (enteros, reales,
complicadas en un pequeño intervalo de booleanos, etc.) que por sí solos no aportan
tiempo, sobre un conjunto de datos, que de información, es necesario tratar con
acuerdo con la cantidad de memoria que estructuras de datos adecuadas a cada
requieren para su almacenamiento se pueden necesidad.
clasificar en simples o estructurados.
En esta semana se abordarán definiciones
Los datos simples son aquellos que ocupan asociadas a los datos y sus tipos, además de
solo una localidad de memoria, mientras que introducir los conceptos iniciales relativos a
los estructurados son un conjunto de espacios las estructuras de datos simples.
de memoria, a las cuales hacemos referencia
mediante un identificador único.

“Un arreglo es un conjunto estático, finito y homogéneo de datos relacionados e indexados en


celdas”.

(López, 2012, p. 42)

IACC-2019
4
SEMANA 2 – ESTRUCTURA DE DATOS

1. ARREGLOS
Según Kirschning I. (2006), “los arreglos son las estructuras de datos más sencillas. Estos son un
grupo de posiciones en memoria relacionadas entre sí por el hecho de que todas tienen el mismo
nombre y los datos que contiene son todos del mismo tipo”.

Figura 1. Representación de un arreglo.


https://shutr.bz/2DrZOV1

1.1 CONCEPTO DE ARREGLO UNIDIMENSIONAL


De acuerdo con la cantidad de datos que almacena una variable, hay dos tipos de datos: simples y
compuestos (también llamados estructurados). Una variable simple, como su nombre lo indica, solo
almacena y retiene un valor a la vez; sin embargo, una variable compuesta cuenta con la capacidad
de almacenar y retener varios datos al mismo tiempo (López, 2012, p. 42).

Figura 2. Tipos de datos simples y compuestos.


Fuente: López, B., 2012, p. 42.

IACC-2019
5
SEMANA 2 – ESTRUCTURA DE DATOS

CONCEPTOS RELACIONADOS CON ARREGLO

a) Conjunto: Se trata de varias celdas, donde cada una llega a almacenar un dato
independiente. Esta característica permite que el arreglo sea una estructura compuesta, ya
que logra almacenar varios datos a la vez.

b) Estático: Debe tener definido un tamaño máximo, es decir, debe establecerse, de inicio,
la cantidad máxima de datos que puede almacenar y no modificarse su tamaño durante la
ejecución del programa que lo contiene. Lo anterior se define al declarar y crear el arreglo
mediante una constante o una variable readonly de tipo entero (lo que depende de su
lenguaje de preferencia) llamada Max. Recuerde que la diferencia entre una constante y
una variable readonly es que a la constante debe asignársele un valor al tiempo de
compilación, mientras que a la variable readonly se le puede asignar en tiempo de ejecución;
sin embargo, a ninguna de ellas se le llega a modificar este valor asignado.

c) Finito: Como consecuencia de ser estático, el arreglo debe delimitarse indicando el inicio
y el final del mismo.

d) Homogéneo: Todos los datos almacenados deben ser del mismo tipo. En un arreglo no
es posible almacenar distintos tipos de datos. Por ejemplo, si el arreglo es declarado de tipo
entero, todas las celdas tendrán que contener solamente enteros, ninguna aceptaría datos
de otro tipo como reales, caracteres, etc.

e) Relacionados: Todos los datos almacenados en las celdas están relacionados con la
variable que identifica el arreglo, lo cual permite que dicha variable almacene más de un
valor a la vez, sin embargo, cada dato puede administrarse de manera independiente a los
demás.

f) Indexados: Para identificar cada celda del arreglo (por ende el dato que contiene) se utiliza
un índice que representa su posición. El índice es un valor numérico entero que
regularmente inicia en cero.

La cantidad de índices que maneja un arreglo determina sus dimensiones, de modo tal que un
arreglo con un índice se conoce como arreglo unidimensional o vector (López, 2012, p. 51).

IACC-2019
6
SEMANA 2 – ESTRUCTURA DE DATOS

REPRESENTACIÓN DE ARREGLOS UNIDIMENSIONALES


Un arreglo unidimensional o vector es una estructura lineal, ya que a cada celda le antecede y le
sucede solamente una celda (a excepción de la primera celda que no tiene antecesora y la última
celda que no tiene sucesora). Cabe señalar que aunque todos los datos están relacionados con la
variable del arreglo, pueden ser tratados, en forma individual, por medio del identificador del vector
y el número de la celda que lo contiene (índice).

Ejemplo: Si el vector se declara con la variable A, entonces los datos o valores contenidos en las
celdas se identifican con el nombre del arreglo y el índice de la celda entre corchetes: A[0], A[1],
A[2] y así sucesivamente. Es importante agregar que algunos lenguajes de programación utilizan
paréntesis en lugar de corchetes y por ende identifican sus datos como A(0), A(1), A(2), etc. (López,
2012, p. 44).

• Para clarificar el tema de arreglos unidimensionales lo invito


a revisar el siguiente contenido multimedia:

https://bit.ly/2LU2zAw

“Los lenguajes de programación actuales (como C#) permiten que el primer índice del arreglo
sea cero; esto es, si un vector se declara de 7 celdas, sus índices estarán en el rango de 0 a 6”
(López, 2012, p. 44).

IACC-2019
7
SEMANA 2 – ESTRUCTURA DE DATOS

Figura 3. Arreglo unidimensional o vector vacío.


Fuente: López B., 2012, p. 44.

1.2 OPERACIONES CON ARREGLOS UNIDIMENSIONALES


Las operaciones más importantes que se realizan en arreglos unidimensionales son:

1.2.1 INSERTAR / ELIMINAR


Permite agregar datos al vector. Esta operación puede hacerse de varias formas, lo que depende de
si se trata de un vector ordenado o uno desordenado, o si se ingresan todos sus datos a la vez o
esporádicamente. De cualquier manera, debe identificarse la celda donde se desea realizar la
inserción del nuevo dato. Habrá que tomarse en cuenta que el vector tiene definido un tamaño
máximo y que no debe excederse, ya que provocaría un error de sobreflujo (overflow).

Ejemplo: Suponga que se tiene el vector de tipo carácter con los datos ‘F’, ‘S’, ‘M’ y ‘A’ y quiere
eliminar el carácter ‘S’, entonces habrá que recorrer el vector para localizar el dato deseado y hay
dos opciones para borrarlo.

Ejemplo de un arreglo o vector:

Figura 4. Ejemplo de un arreglo o vector.


Fuente: López, B., 2012, p. 45.

• POR SUSTITUCIÓN

En este caso hay que cambiar el dato que se desea eliminar y poner otro dato, que es
definido por el programador, por ejemplo, con un espacio en blanco. Debe recordarse que
un vector es homogéneo y solo permite valores del mismo tipo, lo que significa que si el
vector fue declarado de caracteres, únicamente puede almacenar este tipo de datos, en
cambio, si el vector fuese de enteros, la sustitución tendrá que hacerse por otro número.

IACC-2019
8
SEMANA 2 – ESTRUCTURA DE DATOS

Este tipo de eliminación desperdicia espacio, ya que los valores quitados dejan huecos
(López, 2012, p. 45).

Figura 4. Ejemplo de un arreglo o vector.


Fuente: López, B., 2012, p. 45.

• POR DESPLAZAMIENTO

Otra forma de eliminación es desplazando los datos subsecuentes del dato que se desea
eliminar. En este procedimiento se desplazan secuencialmente los datos de las celdas
sucesoras a una posición hacia atrás y se disminuye la cantidad de datos del vector. Al hacer
esto, se reemplazan los valores de las celdas posteriores. Es importante mencionar que el
ultimo valor del vector permanece duplicado en las celdas 2 y 3, pero como ahora Top=3, el
valor contenido en la celda 3 es irrelevante (López, 2012, p. 46).

Figura 5. Eliminación por desplazamiento en un arreglo o vector.


Fuente: López, B., 2012, p. 46.

1.2.2 BORRAR TODO


Hay situaciones en las que es necesario vaciar el vector, es decir, eliminar todos sus datos. Para ello
se reinicializa la variable Top a cero. Al realizar esto los datos permanecen en el vector, pero no son
tomados en cuenta (López, 2012, p. 47).

1.2.3 BUSCAR
Esta operación se utiliza para localizar un dato en el vector. Existen algoritmos de búsqueda
(secuencial, binaria, hash, etc.). La atención se centrará en la búsqueda secuencial, en la cual se
recorre consecutivamente cada celda del vector, comparando el valor almacenado con el dato

IACC-2019
9
SEMANA 2 – ESTRUCTURA DE DATOS

solicitado para desplegar el número de índice de la celda que lo contiene o un mensaje de


inexistencia según corresponda (López, 2012, p. 48).

1.2.4 ORDENAR
Este procedimiento sirve para recolocar los datos del vector en forma ascendente o descendente,
de mayor a menor o de menor a mayor respectivamente. Hay numerosos algoritmos que realizar
esta operación (López, 2012, p. 48).

1.3 APLICACIONES CON ARREGLOS UNIDIMENSIONALES


Hay numerosos ejemplos de vectores en la vida diaria, por ejemplo, una lista de los nombres de
estudiantes de una clase o los gastos diarios de una familia durante un mes. En ambos casos es
posible realizar las operaciones mencionadas (López, 2012, p. 49).

1.3.1 SUMA
FunPr (s.f.) indica que “esta operación implica calcular la suma de los datos en cada una de las
posiciones del arreglo”. Por lo tanto el resultado de esta operación es de acuerdo al gráfico:
6+7+10+2+9, para lograrlo, se debería:

• Hacer un recorrido del arreglo desde la posición 0 hasta la posición n que contenga el último
dato ingresado, por lo que se requiere de un ciclo.
• Dentro del ciclo, deberá existir un acumulador, es decir una variable que contenga la suma
de todos los datos. El acumulador de suma se inicializa fuera del ciclo en 0.
• Retornar el valor del acumulador.

Figura 6. Suma arreglos unidimensionales.


https://bit.ly/2VMRYw1

IACC-2019
10
SEMANA 2 – ESTRUCTURA DE DATOS

1.3.2 PROMEDIOS
Es similar a la suma pero ahora se requiere el promedio, el resultado de esta operación es de
acuerdo al gráfico: (6+7+10+2+9)/2, para lograrlo, se debería:

• Dividir el resultado de la sumatoria para la cantidad de datos, dado por la variable individual.
• Invocar al sub Proceso Sumar creado anteriormente, ya que aunque es posible volver a
realizar la suma, ya que al trabajar en forma de módulos, se aplicar la REUTILIZACIÓN del
código.
• Retornar el valor del promedio.

Figura 2. Promedio arreglos unidimensionales.


Fuente: https://bit.ly/2VMRYw1

1.3.3 MAYOR / MENOR


El desarrollo de este cálculo es muy sencillo. Se confronta cada dato o actual valor almacenado
mayor y el valor almacenado menor.

1.4 CONCEPTOS ASOCIADOS A LOS ARREGLOS BIDIMENSIONALES


Hay situaciones en que es necesario el almacenamiento de datos del mismo tipo de acuerdo con
dos criterios diferentes, por ejemplo, si se desea almacenar la venta mensual de varios productos
durante el año. Para esto se requiere de una estructura de datos que se controle mediante dos
dimensiones: el producto y el mes. De ahí surge la necesidad de analizar otra estructura de datos:
el arreglo bidimensional.

IACC-2019
11
SEMANA 2 – ESTRUCTURA DE DATOS

“Un arreglo bidimensional (también conocido como matriz) mantiene las características
descritas en los arreglos unidimensionales; esto es, también se trata de un conjunto
estático, finito y homogéneo de datos relacionados e indexados almacenados en celdas;
sin embargo, ahora se tienen dos índices para referenciar cada celda” (López, 2012, p. 82).

• Para clarificar el tema de arreglos bidimensionales lo


invito a revisar el siguiente contenido multimedia:

https://bit.ly/2ZjgPcW

1.4.1 MATRICES
Un arreglo bidimensional o matricial es una estructura en la que cada celda debe accederse a través
de dos índices: la fila y la columna. Es importante mencionar que aunque todos los datos están
relacionados con la variable de la matriz pueden ser tratados en forma individual por medio de la
variable que identifica el arreglo bidimensional y la combinación [fila, columna] de la celda que lo
contiene (índices).

Ejemplo: Si la matriz se declara con la variable M entonces los datos o valores contenidos en las
celdas se identifican con el nombre del arreglo bidimensional y los índices de la celda entre
corchetes como M[0,0] , M[0,1] ,M[0,2] y así sucesivamente, donde el primer valor corresponde a
la fila y el segundo a la columna de la celda correspondiente. Cabe destacar que M[1,0] y M[0,1] no
representan lo mismo, M[1,0] se refiere al valor almacenado en la celda de la fila 1 y columna 0
mientras que M[0,1] se refiere al valor almacenado en la celda de la fila 0 y columna 1.

IACC-2019
12
SEMANA 2 – ESTRUCTURA DE DATOS

Figura 3. Representación de arreglos bidimensionales.


Fuente: https://bit.ly/2GpkcHY

Con un enfoque estrictamente estructural, un arreglo es un conjunto de celdas y una matriz es un


arreglo de arreglos, es decir un conjunto de arreglos donde se considera un arreglo a cada fila y se
procede a juntarlos en una sola estructura.

Figura 4: Arreglo matricial.


Fuente: https://bit.ly/2ZfsXvS

IACC-2019
13
SEMANA 2 – ESTRUCTURA DE DATOS

1.4.2 CLAVE/DATO
Un array es en realidad un mapa ordenado. Un mapa es un tipo de datos que asocia valores con
claves. Este tipo se optimiza para varios usos diferentes; se puede emplear como un array, lista
(vector), etc. Ya que los valores de un array pueden ser otros arrays, también son posibles árboles
y arrays multidimensionales (Php.net - Manual de usuario) (s.f.). En ejemplo en PHP de este
concepto es el siguiente:

array(
clave => valor,
clave2 => valor2,
clave3 => valor3,
...
)

1.4.3 PAR ORDENADO


Según Kolmnan B. (1997), un par ordenado (a,b) es un listado de objetos a y b en un orden prescrito,
donde a aparece en primer término y b, en segundo. En consecuencia, un par ordenado
simplemente es una secuencia de longitud 2.

Figura 5. Par ordenado.


Fuente: Kolmnan, B., 1997, p. 102.

IACC-2019
14
SEMANA 2 – ESTRUCTURA DE DATOS

COMENTARIO FINAL
Las situaciones críticas al trabajar con arreglos unidimensionales corresponden a las circunstancias
que se pueden presentar durante la operación de una estructura de datos, cuando se trabaja con
vectores pueden suceder las siguientes: que el vector esté lleno, que el vector esté vacío, que el
vector tenga algunos elementos y que el vector tenga los elementos desordenados.

Las operaciones que se pueden realizar con arreglos bidimensionales o matrices son prácticamente
las mismas que con los arreglos unidimensionales o vectores: insertar, eliminar, buscar y ordenar
datos, siempre que se respeten las características de los arreglos, tal como definir el tamaño desde
su declaración (estático), además de que todos sus valores almacenados deben ser del mismo tipo
(homogéneo) y hay que definir su inicio y final (finito), así como conocer datos relacionados con una
variable.

IACC-2019
15
SEMANA 2 – ESTRUCTURA DE DATOS

REFERENCIAS
FunPr (s.f.). La programación soluciona problemas. Recuperado de: http://bit.ly/2IcGoHH

Kirschning, I. (2006). Arreglos. Recuperado de: http://bit.ly/2VEOCes.

Kolmnan, B. (1997). Estructura de matemáticas discretas para la computación. 3ra. edición.

México: Prentice-Hall Hispanoamericana.

López, B. (2012). Estructura de datos orientados a objetos. 1.a edición. México: Alfaomega Grupo

Editor.

Php.Net (s.f.). Manual de usuario. Recuperado de: http://bit.ly/2UbZOxD

IACC-2019
16
SEMANA 2 – ESTRUCTURA DE DATOS

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2019). Arreglos. Estructura de Datos. Semana 2.

IACC-2019
17
SEMANA 2 – ESTRUCTURA DE DATOS

IACC-2019
18

Potrebbero piacerti anche