15 de noviembre de 2016

Estructura de Datos

Cuadro de texto: Cadenas


Estructura de Datos
En programación, una estructura de datos es una forma particular de organizar datos en una computadora para que pueda ser utilizado de manera eficiente.
Estructuras de datos en programación

En el lenguaje de programación Pauscal es posible crear una estructura de datos de la anteriormente mencionada.

 Estruc Identificador, _
              Miembro1:TipoDeDato, _
              Miembro2:TipoDeDato, _
              ...
              Miembro9:TipoDeDato

Para acceder a los miembros de una estructura primero se debe crear una referencia a esta, generalmente con una variable de tipo, luego se pueden editar y obtener los datos de los miembros libremente.

 Estruc Estructura,Miembro1:Entero,Miembro2:Cadena,Miembro3:Byte
 Var Variable:Estructura
 Variable.Miembro1 = 40000
 Variable.Miembro2 = "Hola Mundo"
 Variable.Miembro3 = 255
 Mensaje(Variable.Miembro2) ' Muestra "Hola Mundo"


Almacenamiento Interno

El almacenamiento interno tiene la ventaja de hacer accesos a los datos más eficientes, requiriendo menos almacenamiento global, teniendo mejor referencia de localidad, y simplifica la gestión de memoria para la lista (los datos son alojados y desalojados al mismo tiempo que los nodos de la lista)

Almacenamiento Externo

El almacenamiento externo, por otro lado, tiene la ventaja de ser más genérico, en la misma estructura de datos y código máquina puede ser usado para una lista enlazada, no importa cuál sea su tamaño o los datos. Esto hace que sea más fácil colocar el mismo dato en múltiples listas enlazadas.


Base de Datos

Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y diferentes usuarios deben poder utilizar estos datos. Por lo tanto, el concepto de base de datos generalmente está relacionado con el de red ya que se debe poder compartir esta información. De allí el término base. "Sistema de información" es el término general utilizado para la estructura global que incluye todos los mecanismos para compartir datos que se han instalado.

Archivos

Un archivo o fichero informático es un conjunto de bits que son almacenados en un dispositivo. Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene.

A los archivos informáticos se les llama así porque son los equivalentes digitales de los archivos escritos en libros, tarjetas, libretas, papel o microfichas del entorno de oficina tradicional.

Tablas
Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo.
Una tabla es utilizada para organizar y presentar información. Las tablas se componen de filas y columnas de celdas que se pueden rellenar con textos y gráficos Las tablas se componen de dos estructuras:
·         Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección.
·         Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, o un número de teléfono, un nombre, etc.


Estáticos
Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se tratarán debido a su complejidad.

Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir, una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuir.
Dinámicos
Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa se está ejecutando.
Los punteros quizás sean el concepto más complejo a la hora de aprender un lenguaje de programación, sobre todo si es el primero que aprendes. Debido a esto, no lo trataremos. Además, lenguajes que están muy de moda (por ejemplo Java) no permiten al programador trabajar con punteros.

Arreglos
Son una agrupación de datos homogéneos, es decir, con un mismo tipo de dato básico asociado. Se almacenan en forma contigua en la memoria y son referenciados con un nombre común y una posición relativa.
Ejemplos:
Arreglo Lineal (1 dimensión ó vector)
Vista gráfica
[1]
[2]
[3]
[4]
[5]

Cadenas
Se define como una secuencia de caracteres que se interpretan como un dato único. Su longitud puede ser fija o variable porque además está constituida por caracteres alfanuméricos.

Vector
Es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).

Matriz
Es un conjunto de variables (también llamado bloque) del mismo tipo que el considerado en matemática, y cuyo acceso se realiza por índices o líneas.

Lista
 Una lista es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos.

Pila
Una pila es una estructura de datos a la cual se puede acceder solo por un extremo de la misma.

Las pilas son frecuentemente utilizadas en el desarrollo de sistemas informáticos y software en general. Por ejemplo, el sistema de soporte en tiempo de compilación y ejecución del Pascal utiliza una pila para llevar la cuenta de los parámetros de procedimientos y funciones, variables locales, globales y dinámicas.

Clasificación
Pila estática
¿Cómo representar estáticamente una pila?
Sin duda tendremos que utilizar arreglos o registros que como ya sabemos son la base para estructuras de datos más complejas. Considera la siguiente figura:
Vista gráfica

Suponiendo que Dato pertenece a un mismo tipo de datos y CuentaDato corresponde a un entero que se incrementa a medida que un nuevo elemento se incorpora a la pila. Intenta construir la definición de tipo para la estructura Pila.
TYPE
______________________________
______________________________
______________________________
END;
Pila Dinámica
¿Cómo representar dinámicamente una pila?
Sin duda tendremos que utilizar nodos con punteros. Considera la siguiente figura:

Suponiendo que los punteros que aparecen en la figura son capaces de apuntar a un nodo y que Dato pertenece a cualquiera de los tipos básicos o estructurados, la definición de tipo sería:
TYPE
Puntero=^NodoPila;
NodoPila=Record
Info:AlgunTipo;
sgte:Puntero;
End;
Var tope:Puntero;
Cola
Una cola es una colección de elementos homogéneos (almacenados en dicha estructura), en la misma se pueden insertar elementos por uno de los extremos, llamado frente, y retirar los mismos por el otro extremo, denominado final.
Secuencial
Es aquel fichero cuyo registro pueden ser tratados en secuencia, unos datos detrás de otros. Después de haber leído un registro el dispositivo de lectura se posiciona al principio del siguiente.

Directo
Es un término usado en los sistemas operativos Microsoft Windows para referirse a un fichero u objeto cuyo contenido contiene instrucciones que redirigen a otro fichero del sistema de ficheros o a un lugar de la red.

Indexado
Este tipo de ficheros permiten el acceso a sus componentes en base a una clave que permite diferenciar a cada componente del resto.

Arboles
En ciencias de la computación y en informática, un árbol es una estructura de datos ampliamente usada que imita la forma de un árbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos conectados a él.
Tipos de Arboles
Ø  Árboles Binarios
Ø  Árbol de búsqueda binario auto-balanceable
·         Árboles AVL
·         Árboles Rojo-Negro
·         Árbol AA
§  Árbol de segmento
Ø  Árboles Multicamino
§  Árboles B (Árboles de búsqueda multicamino autobalanceados)
·         Árbol-B+
·         Árbol-B*

Grafos


Un grafo en el ámbito de las ciencias de la computación es una estructura de datos, en concreto un tipo abstracto de datos (TAD), que consiste en un conjunto de nodos (también llamados vértices) y un conjunto de arcos (aristas) que establecen relaciones entre los nodos. El concepto de grafo TAD desciende directamente del concepto matemático de grafo.


No hay comentarios:

Publicar un comentario