Computers">
Datos Estructurados
Datos Estructurados
Datos Estructurados
Se le llama dato de tipo estructurado a una entidad, con un solo identificador constituido por datos de
otro tipo, de acuerdo con las reglas que definen cada una de las estructuras de datos.
Los tipos de datos estructurados más comunes son: vectores y matrices (array), cadenas de caracteres
(string), registros y uniones, aunque estos últimos no los vamos a ver en este curso.
1) Numéricos:
Son aquellos que representan una cantidad o valor determinado. Su representación se lleva
a cabo en los formatos ya conocidos (enteros, punto y fracciones decimales si estas existen).
Estos pueden ser tipos enteros (interger) o tipo real (double).
2) Alfanuméricos:
Representan información textual (palabras, frases, símbolos, etc). No tiene valor alguno para
efectos númericos. Pueden distinguirse porque son delimitados por apóstrofos o comillas.
3) Lógicos
Estructurados: son conjunto de partidas de datos simples con relaciones definidas entre ellos. Y se
compone de los siguientes tipos:
Arrays
La estructura de datos más simple es el array lineal (o unidimensional). Un array lineal es una lista de
números finitos de datos similares, referenciados por medio de un conjunto de n números consecutivos,
normalmente 1,2,3, …, n.
Pila
Una pila, también denominada sistema último-dentro primero-fuera (LIFO), es una lista lineal en la cual
las inserciones y extracciones tienen lugar sólo por un extremo llamado cúspide.
Cola
Una cola, también denominada sistema primero-dentro primero-fuera (FIFO), es una lista lineal en la
cual las extracciones se realizan siempre por un extremo llamado frente y las inserciones por el extremo
contrario llamado final de la lista.
Grafos
Los datos contienen, en algunos casos, relaciones entre ellos que no es necesariamente jerárquica. Por
ejemplo, supongamos que unas líneas aéreas realizan vuelos sólo entre ciudades conectadas por líneas.
La estructura de datos que refleja esta relación recibe el nombre de grafo.
3) ¿Qué son las cadenas y dar un ejemplo?
Un dato de tipo cadena es aquel que pueden tomar por valor una secuencia de caracteres. En
pseudocódigo, el valor de un dato de tipo cadena se puede representar entre comillas simples (') o
dobles ("). Sin embargo, en este curso de diseño de algoritmos, se van a utilizar solamente las comillas
dobles (al igual que se hace en lenguaje C).
asignación a una variable, la cadena que se guarda puede ser una constante, una
variable tipo cadena o una expresión que produzca un dato tipo cadena. Por
ejemplo:
nombre ← “Pepe”
nombre ← mi-nombre-de-pila
Formar una cadena a partir de dos ya existentes, yuxtaponiendo los caracteres de ambas. Si se denota
por // al operador “concatenación”, el resultado de:
Nótese que las constantes de tipo cadena se escriben entre comillas, para no confundirlos con nombres
de variables u otros identificadores del programa.
Permite formar una cadena (subcadena) a partir de otra ya existente. La subcadena se forma tomando
un tramo consecutivo de la cadena inicial. Si NOMBRE es una variable de tipo cadena que contiene
“JUAN PEDRO ORTEGA” y denotamos por (n:m) la extracción de m caracteres tomados a partir del lugar
n, entonces NOMBRE(6:5) es una subcadena que contiene “PEDRO”.
Es un conjunto de datos del mismo tipo almacenados en la memoria del ordenador en posiciones
adyacentes. Sus componentes individuales se llaman elementos y se distinguen entre ellos por el
nombre del vector seguido de uno o varios índices o subíndices. Estos elementos se pueden procesar,
bien individualmente, determinando su posición dentro del vector, bien como vector completo. El
número de elementos del vector se específica cuando se crea éste, en la fase declarativa del programa,
definiendo el número de dimensiones o número de índices del mismo y los límites máximo y mínimo
que cada uno de ellos puede tomar, que llamaremos rango.
inf .. sup: límites inferior y superior del rango (valor entero que puede tomar el
índice)
Pudiera ser necesario determinar si un vector contiene un valor determinado que coincide con algún
valor clave o buscado. El proceso de encontrar en un array un elemento particular, se llama búsqueda.
consiste en recorrer secuencialmente un array desde el primer elemento hasta el último y comprobar si
alguno de los elementos del array contiene el vector buscado, es decir, comparar cada elemento del
array con el valor buscado. Dado que el array no está en ningún orden particular, existe la misma
probabilidad de que el valor se encuentre, ya sea en el primer elemento como en el último. Por tanto,
en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del
arreglo.
consiste en analizar, en primer lugar, el elemento central del vector, si el elemento buscado es menor se
buscar por el tramo inferior del vector utilizando la misma técnica, y si no por el tramo superior. Es
decir, después de cada una de las comparaciones elimina la mitad de los elementos en el arreglo bajo
búsqueda. En la segunda iteración el tramo a buscar es la mitad (bien derecha, bien izquierda) del vector
y el elemento a evaluar es el central de este nuevo tramo. Esto supone claramente que el vector ha
debido ser ordenado previamente.
Es un tipo de dato estructurado formado por la unión de varios elementos bajo una misma estructura.
Estos elementos pueden ser, o bien datos elementales (entero, real, carácter,...), o bien otras
estructuras de datos. A cada uno de esos elementos se le llama campo.
int dato;
Aquella en la que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no
pueda modificarse dicho tamaño durante la ejecución del programa entre las estructuras de datos
estáticas se encuentran en los array (vectores y matrices), registros, archivos y cadenas.
Lineales:
Pilas
Colas
Listas Enlazadas
No Lineales:
Arboles
Grafos