ESTRUCTURA DE DATOS DEFINICIÓN

Anuncio
ESTRUCTURA DE DATOS
DEFINICIÓN
En programación, una estructura de datos es una forma de organizar un conjunto de
datos elementales (un dato elemental es la mínima información que se tiene en el
sistema) con el objetivo de facilitar la manipulación de estos datos como un todo o
individualmente.
Define la organización e interrelacionamiento de estos, y un conjunto de operaciones
que se pueden realizar sobre él. Las operaciones básicas son:
Alta, adicionar un nuevo valor a la estructura.
Baja, borrar un valor de la estructura.
Búsqueda, encontrar un determinado valor en la estructura para realizar una operación
con este valor, en forma SECUENCIAL o BINARIO (siempre y cuando los datos estén
ordenados)…
Otras operaciones que se pueden realizar son:

Ordenamiento, de los elementos pertenecientes a la estructura.

Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las
apareadas.
Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia
para la realización de cada operación. De esta forma, la elección de la estructura de
datos apropiada para cada problema depende de factores como la frecuencia y el orden
en que se realiza cada operación sobre los datos.
DEFINICIÓN, IMPORTANCIA Y UTILIDAD DE LAS ESTRUCTURAS DE DATOS
CONCEPTO: Es una colección de datos organizada de un modo particular. Las
estructuras de datos pueden ser de dos tipos:
ESTRUCTURAS DE DATOS ESTÁTICAS Y ESTRUCTURAS DE DATOS
DINÁMICAS.
ESTRUCTURAS DE DATOS ESTÁTICAS: Son aquellas en las que se asigna una
cantidad fija de memoria cuando se declara la variable. En grandes ocasiones se
necesitan colecciones de datos que crezcan y reduzcan su tamaño en memoria a
medida que el
programa progrese. Esto se logra implementando las estructuras
dinámicas.
ESTRUCTURA DE DATOS DINÁMICAS: Son aquellas cuya ocupación en memoria
puede aumentar o disminuir en tiempo de ejecución
IMPORTANCIA Y UTILIDAD DE LAS ESTRUCTURAS DE DATOS
La programación estructurada significa escribir un programa de acuerdo a las siguientes
reglas.
1.-El programa tiene un diseño modular
2.-Los módulos son diseñados de un modo descendente
3.-Cada módulo se codifica utilizando las tres estructuras de control
básicas:
a)Secuencia
b)Selección
c)Repetición
La programacióne estructurada se refiere a un conjunto de técnicas que aumentan
considerablemente la productividad del programa reduciendo en elevado grado el
tiempo requerido para escribir, verificar,depurar y mantener los programas. Utiliza un
número limitado de estrcuturas de control que minimizan la complejidad de los
programas y por consiguiente reducen los errores y hacen los programas en general más
eficientes.
CLASIFICACIÓN DE LAS ESTRUCTURAS DE DATOS
ESTRUCTURAS DE DATOS ESTÁTICAS
1.- Simples o primíticas
a) Boolean
b) Char
c) Integer
d) Real
2.- Compuestas
a) Arreglos
b) Conjuntos
c) Strings
d) Registros
e) Archivos
ESTRUCTURA DE DATOS DINAMICAS
1.- Lineales
a) Pila
b) Cola
c) Lista
2.- No lineales
a) Árboles
b) Grafos
OPERACIONES MÁS COMUNES DE LAS ESTRUCTURAS DE DATOS
DEFINICIONES BÁSICAS
NODO: Está formado por dos campos. Un campo de información que contiene el valor
del elemento (info) y el campo NEXT que es el que apunta a la dirección del elemento
siguiente.
CAMPO DE INFORMACIÓN (INFO): Contiene el elemento actual o valor del nodo
en la lista.
CAMPO DE DIRECCIÓN (NEXT): Contiene la dirección del nodo siguiente de la lista.
LISTA LINEAL ENCADENADA:Es cuando los elementos fueron ordenados
explícitamente en nodos, es decir, cada elemento contiene dentro de sí mismo la
dirección del elemento siguiente.
list --> [info|next]--> [info|next]--> [info|next]---// (nil)
LIST:Es un puntero externo que apunta hacia el primer nodo de la
lista
NULO:Es el campo de dirección siguiente al último nodo en la lista, el cual es una
dirección no válida. Este puntero nulo es utilizado para señalar el final de la lista.
LISTA VACIA:Es una lista sin nodos, es decir, el valor del puntero externo de la lista
es el puntero nulo. Se puede especificar así:
List=nil
P
Q
List-->[ x | ] --> [ y | ]--// (nil)
INFO(nodo (p))=x
NEXT(nodo (p))=q
INFO(next (p))=y
NEXT(nodo (q))=nil
LISTA LINEAL ENCADENADA: Es una estructura dinámica, donde el número de
nodos en una lista puede variar a medida que los elementos son insertados y removidos,
por lo tanto la naturaleza dinámica de una lista contrasta con la naturaleza estática de un
arreglo que permanece en forma constante.
OPERACIONES MÁS COMUNES EN UNA LISTA LINEAL ENCADENADA
ALGORITMO PARA INSERCIÓN DE NODOS EN UNA LISTA LINEAL
ENCADENADA
P=GETNODE
INFO(P)=X
NEXT(P)=LIST
LIST=P
En donde:
GETNODE es un mecanísmo para traer nodos vacíos.
ALGORITMO PARA REMOVER DE NODOS EN UNA LISTA LINEAL
ENCADENADA
P=LIST
LIST=NEXT(P)
X=INFO(P)
FREENODE(P)
En donde:
FREENODE es un mecanísmo para eliminar nodos.
Descargar