Este documento describe diferentes tipos de estructuras de datos lineales como arreglos, pilas y colas. Explica que los arreglos son colecciones ordenadas de elementos del mismo tipo que pueden ser unidimensionales, bidimensionales o multidimensionales. Las pilas siguen el principio LIFO, donde los últimos elementos insertados son los primeros en eliminarse. Por último, las colas siguen el principio FIFO, donde los primeros elementos en insertarse son los primeros en eliminarse.
2. 2.1 ARREGLO Arreglo o vector, en programación, conjunto o agrupación de variables del mismo tipo cuyo acceso se realiza por índices. . Arreglo, en música, transcripción o reinterpretación de una pieza.
3. Arreglo: Es un acomodo de espacios (como en una matriz) en los cuales es una colección de un tipo de dato, y pueden ser unidimensionales, bidimensionales o multidimensionales Es un conjunto finito y ordenado de elementos homogéneos (del mismo tipo de datos). Es un tipo de dato estructurado simple o estático y pueden ser vectores o tablas (matrices). haber este
4. 2.1.2 ARREGLO UNIDIMENCIONAL Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa. Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y se debe proporcionar la dirección base del arreglo, la cota superior y la inferior.
5. Para establecer el rango del arreglo (número total de elementos) que componen el arreglo se utiliza la siguiente formula: RANGO = Ls - (Li+1)
6. donde : A = Identificador único del arreglo i = Índice del elemento li = Límite inferior w = Número de bytes tipo componente Si el arreglo en el cual estamos trabajando tiene un índice numerativo utilizaremos las siguientes fórmulas: RANGO = ord (ls) - (ord (li)+1) A[i] = base (A) + [ord (i) - ord (li) * w]
7. donde: ls = Límite superior del arreglo li = Límite inferior del arreglo Para calcular la dirección de memoria de un elemento dentro de un arreglo se usa la siguiente formula: A[i] = base(A) + [(i-li) * w]
8. 2.1.3 ARREGLOS BIDIMENCIONALES Este tipo de arreglos al igual que los anteriores es un tipo de dato estructurado, finito ordenado y homogéneo. El acceso a ellos también es en forma directa por medio de un par de índices. Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas. La primera dimensión del arreglo representa las columnas, cada elemento contiene un valor y cada dimensión representa una relación
9. 2.1.3 ARREGLOS BIDIMENCIONALES LA APLICACIÓN DE ARREGLOS BIDIMENSIONALES SON DE GRAN UTILIDAD PARA PODER TRABAJAR CON MATRICES Y VECTORES UN EJEMPLO MUY CLARO DE ESTO ES: int matriz[3][3]; for(f=0;f<3;f++) { suma=0; for(c=0;c<3;c++) { suma=suma+matriz[c][f]; } vectf[f]=suma; }
10. 2.1.4 ARREGLOS MULTIDIMENCIONALES El tipo componente de un arreglo puede ser otro arreglo de ese, por ejemplo Típo Arr = Arreglo [ 1..2] es Arreglo de [1..8] El numero de filas o de columnas es igual al limite superior menos el limite inferior mas 1. Este numero es denominado el rango de la dimensión. La posición de cada uno de los elementos esta determinada por dos subíndices, que determinan la fila y la columna, el siguiente ejemplo esquematiza a el arreglo y los subíndices.
11. 2.1.4 ARREGLOS MULTIDIMENCIONALES Aunque en la practica paresca que la computadora almacena la información en 2 dimensiones, la memoria es lineal, es decir un arreglo unidimensional. El método que utiliza la computadora es ocupar el primer conjunto de posiciones para la primera fila, la segunda fila ocupa el segundo conjunto. Bajo este mismo método se representar los arreglos de mas de una dimensión, por ejemplo un arreglo de tres dimensiones gráficamente se representan de la siguiente forma:
12. 2.1.5 RESOLUCION DE PROBLEMAS DE ARREGLOS Sea FECHA un registro formado por tres campos numéricos. Su representación queda como se muestra en a continuación. FECHA = REGISTRO Día: 1.31 Mes : 1.12 Año : 0..2000 ( fin de la definición del registro FECHA ) FECHA Acceso a los campos de un registro Como un registro es un dato estructurado no puede accesarse directamente como un todo, si no que Debe especificarse que elemento ( campo ) que el registro interesa. Para ello, en la mayoría de los lenguajes Se sigue la siguiente sintaxis: Variable _ registro . id _ campo Donde : Variable _ registro es una variable de tipo, registro Id _ campo es el identificador del campo deseado Es decir, se usaran dos nombres para hacer referencia a un elemento: el nombre de la variable tipo Registro y el nombre de la componente , separados entre si por un punto .
13. 2.1.5 RESOLUCION DE PROBLEMAS DE ARREGLOS Un registro se define de la siguiente manera: Ident_registro=REGISTRO Id _ campo1: tipo1 Id _ campo2 : tipo2 ... id _ campon: tipon ( fin de la definición del registro ) Donde: idént _ registro es el nombre del dato tipo registro Id _ campo¡ es el nombre del campo i Tipoi es el tipo del campo id Los que siguen son ejemplos de definición de registros, con su correspondiente representación grafica
14. 2.2 PILAS Las pilas son otro tipo de estructura de datos lineales, las cuales presentan restricciones en cuanto a la posición en la cual pueden realizarse las inserciones y las extracciones de elementos.
15. 2.2.1 PILAS Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. Como consecuencia, los elementos de una pila serán eliminados en orden inverso al que se insertaron. Es decir, el último elemento que se metió a la pila será el primero en salir de ella. En la vida cotidiana existen muchos ejemplos de pilas, una pila de platos en una alacena, una pila de latas en un supermercado, una pila de papeles sobre un escritorio, etc. Debido al orden en que se insertan y eliminan los elementos en una pila, también se le conoce como estructura LIFO (Last In, First Out: último en entrar, primero en salir).
29. 2.3 COLAS CIRCULARES Colas circulares (anillos): en las que el último elemento y el primero están unidos. Una cola circular o anillo es una estructura de datos en la que los elementos están de forma circular y cada elemento tiene un sucesor y un predecesor. Los elementos pueden consultarse, añadirse y eliminarse únicamente desde la cabeza del anillo que es una posición distinguida. Existen dos operaciones de rotaciones, una en cada sentido, de manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor, respectivamente, de la cabeza actual.
30.
31. Bicolas de salida restringida: Son aquellas donde sólo se elimina por el final, aunque se puede insertar al inicio y al final. Puede representarse a partir de un vector y dos índices, siendo su representación más frecuente una lista circular doblemente enlazada. Todas las operaciones de este tipo de datos tienen coste constante.
32. 2.3.3 OPERACIONES BASICAS Crear: se crea la cola vacía. Encolar (añadir, entrar, push): se añade un elemento a la cola. Se añade al final de esta. Desencolar (sacar, salir, pop): se elimina el elemento frontal de la cola, es decir, el primer elemento que entró. Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primero elemento que entró.