Está en la página 1de 11

Aplicación de estructuras de

datos
Vectores y matrices (Arrays)
Pilas y colas
Listas
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
 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.
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.
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)
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
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.
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.
Procedimiento Burbuja
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.
Procedimiento de inserción

También podría gustarte