Top Banner
UNIDAD II ESTRUCTURAS LINEALES
22

Unidad _ II

Jul 25, 2015

Download

Documents

Ana Campos
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Unidad _ II

UNIDAD IIESTRUCTURAS LINEALES

Page 2: Unidad _ II

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.

Page 3: Unidad _ II

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

Page 4: Unidad _ II

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.

Page 5: Unidad _ II

Para establecer el rango del arreglo (número total de elementos) que componen el arreglo se utiliza la siguiente formula:

                RANGO = Ls - (Li+1)

Page 6: Unidad _ II

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]

Page 7: Unidad _ II

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]

Page 8: Unidad _ II

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

Page 9: Unidad _ II

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; }

Page 10: Unidad _ II

2.1.4 ARREGLOS MULTIDIMENCIONALESEl 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.

Page 11: Unidad _ II

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:

Page 12: Unidad _ II

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 .

 

Page 13: Unidad _ II

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

Page 14: Unidad _ II

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.

Page 15: Unidad _ II

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).

Page 16: Unidad _ II

2.2.3CLASES PARA LA IMPLEMENTACION DE PILAS

Ejemplo completo sobre la implementación de pilas manejando Visual Studio .net 2003

//----LIO include “stdafx.h” using <mscorlib.dll> using namespace System; using namespace System::Collections; public __gc class Ejemplo Stack?{ public: static void Imprime(I Enumerable? __gc *Mi

Coleccion?)   {

Page 17: Unidad _ II

2.3 COLAS DEFINICIONUna cola es una estructura de datos, caracterizada por

ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir.

El tipo cola representa la idea que tenemos de cola en la vida real. La cola para subir al autobús está compuesta de elementos (personas), que dispone de dos extremos comienzo y fin. Por el comienzo se extraerá un elemento cuando haya comprado el billete para su viaje, y si llega una nueva persona con intención de usar el autobús, tendrá que colocarse al final y esperar que todos los elementos situados antes que él abandonen la cola.

Page 18: Unidad _ II

Tipos de Colas:

•Colas simples•Colas circulares•Colas con prioridad o Colas Dobles

Page 19: Unidad _ II

Colas simples:

Se inserta por un sitio y se saca por otro, en el caso de la cola simple seinserta por el final y se saca por el principio. Para gestionar este tipo de colahay que recordar siempre cual es el siguiente elemento que se va a leer y cuales el último elemento que se ha introducido.

910973175137

Page 20: Unidad _ II

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.

Page 21: Unidad _ II

2.3 COLAS DOBLES

Bicolas: son colas en donde los nodos se pueden añadir y quitar por ambos extremos; se les llama DEQUE (Double Ended QUEue). Para representar las bicolas lo podemos hacer con un Array circular con Inicio y Fin que apunten a cada uno de los extremos. Hay variantes:

• Bicolas de entrada restringida: Son aquellas donde la inserción sólo se hace por el final, aunque podemos eliminar al inicio ó al final.

• 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.

Page 22: Unidad _ II

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ó.