La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aplicación de estructuras de datos

Presentaciones similares


Presentación del tema: "Aplicación de estructuras de datos"— Transcripción de la presentación:

1 Aplicación de estructuras de datos
Vectores y matrices (Arrays) Pilas y colas Listas

2 Estructuras de datos Clasificación de los tipos de datos según su estructura: Simples: Estándar (entero, real, carácter, booleano) No estándar (enumeración, subrango) Estructurados: Estáticos (arrays, cadena, registros, ficheros, conjuntos) Pilas Dinámicos (punteros, listas enlazadas, árboles, grafos) Colas

3 Los tipos simples son cuando cada dato representa un único elemento:
Estándar: Están definidos por defecto por el lenguaje. No estándar: Tipos simples definidos por el usuario. Los tipos de datos estructurados, son cuándo un dato es una estructura que se construyen a partir de otros complementos. Estáticos: Ocupan un tamaño de memoria fijo, que tengo que definir antes de declararlo. Dinámicos: La estructura no ocupa un tamaño fijo de memoria, sino que ocupa la memoria que ocupa en cada momento. Se van a manejar a través del tipo de dato puntero. Puntero: Es una variable cuyo contenido es una dirección de memoria y esa dirección de memoria corresponde a la dirección de memoria de otra variable, que es la variable apuntada. Según el tipo de datos de la variable apuntada variará el tipo de puntero. A través de una variable de tipo puntero podemos establecer la conexión o enlace entre los elementos que van a formar la estructura, y según se realizan estos enlaces vamos a tener diferentes tipos de estructuras (listas enlazadas, árboles, grafos). Las pilas y las colas son 2 estructuras de datos con un funcionamiento especial, que pueden implementarse con memoria estática o dinámica.

4 ARRAYS UNIDIMENSIONALES: VECTORES.
Un array unidimensional, o lineal, o vector, es un conjunto finito y ordenado de elementos homogéneos. Es finito porque tiene un número determinado de elementos. Homogéneo porque todos los elementos almacenados van a ser del mismo tipo. Ordenado porque vamos a poder acceder a cada elemento del array de manera independiente porque va a haber una forma de referenciar cada elemento. Para referenciar cada elemento de un array vamos a usar índices (valor que directa o indirectamente referencia la posición del array). Los índices tienen que ser de cualquier tipo de datos escalar (entre los que se puede definir un orden, y que entre 2 elementos consecutivos no puede haber infinitos elementos), aunque normalmente como índices se van a utilizar números enteros. Para referenciar un elemento de un array usaremos el nombre del array y entre corchetes [ ] el índice que determina la posición de ese elemento en el array.

5 Ejemplo: Se almacenan los nombres de los amigos
Asignación de un dato a una posición concreta del array: <nom_array>[indice]valor nombre(10) nombre[3] =“Ramsés” escribir <nom_array>[indice] Para i ,1,amigo,1 escribir “Como se llama tu amigo”,i leer nombre(i) fin para Escribe “Cual amigo deseas ver”, Leer posición Escribe “Tu amigo es “, nombre(posicion)

6 ARRAYS BIDIMENSIONALES O MATRICES:
En un array unidimensional o vector cada elemento se referencia por un índice, en un array bidimensional cada elemento se va a referenciar por 2 índices, y ahora la representación lógica ya no va a ser un vector, sino una matriz. Un array bidimensional de M*N elementos es un conjunto de M*N elementos, todos del mismo tipo, cada uno de los cuales se referencia a través de 2 subíndices. El primer subíndice podrá variar entre 1 y M si hemos empezado a numerar los índices por 1, y el segundo índice variará entre 1 y N, si hemos empezado a numerar los índices por el 1. Y más en general podemos definir un array de 2 dimensiones de la siguiente manera. <nom_array>: array [LI1..LS2,LI2..LS2] de <tipo> <var_array>[I , J] LI1 <= I <= LS1 LI2 <= J <= LS2

7 ORDENACIÓN Consiste en organizar un conjunto de datos en un orden determinado según un criterio. La ordenación puede ser interna o externa: Interna: La hacemos en memoria con arryas. Es muy rápida. Externa: La hacemos en dispositivos de almacenamiento externo con ficheros. Para determinar lo bueno que es un algoritmo de ordenación hay que ver la complejidad del algoritmo (cantidad de trabajo de ese algoritmo), se mide en el número de operaciones básicas que realiza un algoritmo. La operación básica de un algoritmo es la operación fundamental, que es la comparación.

8 Método de la burbuja: La filosofía de este método es ir comparando los elementos del array de 2 en 2 y si no están colocados correctamente intercambiarlos, así hasta que tengamos el array ordenado. Hay que comparar la posición 1 y la 2 y si no están ordenadas las intercambio. Luego la 2 y la 3 y así sucesivamente hasta que comparo las últimas posiciones. Con esta primera pasada lograremos que quede ordenado el último elemento del array. Teóricamente, en cada pasada iremos colocando un elemento, y tendríamos que hacer n –1 pasadas. Si en una pasada no se hacen cambios, el array ya está ordenado.

9 Procedimiento Burbuja

10 Método de inserción: Se supone que se tiene un segmento inicial del array ordenado, y hay que ir aumentando la longitud de segmento hasta que coincide con la longitud del array. Para ello insertaremos el siguiente elemento en el lugar adecuado dentro del segmento ordenado. TÉCNICAS Y DISEÑOS DE ALGORITMOS INICIANDO LA PROGRAMACIÓN Esto se hace moviendo cada elemento del segmento ordenado a la derecha hasta que se encuentre uno menor o igual al elemento que queremos colocar en el segmento o hasta que no tenemos elementos, y lo coloco en esa posición. Para arrancar este método se parte de que el segmento ordenado inicial este es la primera posición.

11 Procedimiento de inserción


Descargar ppt "Aplicación de estructuras de datos"

Presentaciones similares


Anuncios Google