Estructuras de Datos
Son
tipos de datos basados construidos en base a tipos primitivos. Permiten la
creación de tipos nuevos de datos, así como también la posibilidad de manejar
colecciones de datos.
Vectores o arreglos unidimensionales: son tipos de datos
estructurados que sirven como contenedores de colecciones de datos primitivos.
En algunos lenguajes pueden ser heterogéneos. Semánticamente son colecciones de
registros con dos campos, uno es la data contenida y el otro el índice que
denota la posición a la que pertenece en la colección. Son formas básicas de
conjuntos cuando su manejo es homogéneo.
Ejemplo:
Tipo
Vectores
= arreglo [1...1000] de entero //se declara un arreglo de 1000 posiciones de
tipo entero.
Ejemplo
de uso
Vectores
[1] = 1 //a vectores en la posición 1 se le asigna 1
Vectores
[2] = 2//a vectores en la posición 2 se le asigna 2
Vectores
[3] = 3//a vectores en la posición 3 se le asigna 3
Matrices o arreglos multidimensionales: son vectores de varias
dimensiones, útiles para representar tablas.
Ejemplo
de declaración
Tipo
Matriz
= arreglo [1...10, 1...10] de entero //se declara una matriz de 10x10 de tipo
entero.
Ejemplo
de uso
Matriz
[1] [1]=1000 //a la matriz en la fila 1, columna 1 le asigno el valor 1000
Registros como estructuras heterogéneas: un registro se establece
como una n-tupla. Establece semánticamente un contenedor con n campos cada uno
representando un dato primitivo o estructurado (estructuras anidadas o tipos
recursivos).
Ejemplo
de declaración
Tipo
Casa
= registro
Ventanas:
entero
Color:
cadena
Habitaciones:
entero
Habitantes:
entero
Numero:
entero
Finregistro
Var
casa-playa:
casa
Ejemplo
de uso
Casa-playa.ventanas = 10
Esta
estructura es base para la creación de nuevos tipos de datos.
Ejemplos Programados (lenguaje C)
//Algoritmo de Ordenamiento por Inserción.
void InsertSort(int *array, int size){
int i,j,aux;
for(i=1;i<size;i++){
j=i;
//Acceso a arreglos. Manejo de arreglos
void InsertSort(int *array, int size){
int i,j,aux;
for(i=1;i<size;i++){
j=i;
//Acceso a arreglos. Manejo de arreglos
aux=array[i];
while((j>0)&&(aux<array[j-1])){
array[j]=array[j-1];
j--;
}
array[j]=aux;
}
}
while((j>0)&&(aux<array[j-1])){
array[j]=array[j-1];
j--;
}
array[j]=aux;
}
}
//PrintArray: Accede e imprime elementos de un arreglo.
void printarray(int *array, int size){
int i;
for(i=0;i<size;i++){
printf("%d ",array[i]);
}
printf("\n\n");
}
void printarray(int *array, int size){
int i;
for(i=0;i<size;i++){
printf("%d ",array[i]);
}
printf("\n\n");
}
//Declaración de un registro:
typedef struct{
float coordenadaX;
float coordenadaY;
float coordenadaZ;
}punto3D;
//uso del registro:
punto3D var;
var.coordenadaX = 1.0
var.coordenadaY = 2.5
var.coordenadaZ = 6.9
No hay comentarios:
Publicar un comentario