Busqueda...

Estructuras de Datos


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
        aux=array[i];
        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");
}


//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