Documentos de Académico
Documentos de Profesional
Documentos de Cultura
S2 Contenido
S2 Contenido
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
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.
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”.
IACC-2019
5
SEMANA 2 – ESTRUCTURA DE DATOS
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
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).
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
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.
• 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).
• 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).
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
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.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.
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.
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).
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
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,
...
)
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
López, B. (2012). Estructura de datos orientados a objetos. 1.a edición. México: Alfaomega Grupo
Editor.
IACC-2019
16
SEMANA 2 – ESTRUCTURA DE DATOS
IACC-2019
17
SEMANA 2 – ESTRUCTURA DE DATOS
IACC-2019
18