You are on page 1of 3

Conceptos Básicos

Estructura de Datos
Forma de organizar un conjunto de datos con el objetivo de facilitar su manipulación. Define la
organización y la interrelación de éstos y un conjunto de operaciones que se pueden realizar sobre
ellos.

Operaciones básicas

 Altas, adicionar un nuevo elemento a la estructura.


 Bajas, eliminar un elemento de la estructura.
 Búsqueda, encontrar un determinado elemento en la estructura.

Manejo de Memoria

Datos Estáticos y Dinámicos

Datos Estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto
se determinan en tiempo de compilación. El ejemplo típico son los arrays. Tienen el problema de
que hay que dimensionar la estructura de antemano, lo que puede conllevar desperdicio o falta de
memoria.

Datos dinámicos: su tamaño y forma es variable (o puede serlo) a lo largo de un programa, por lo
que se crean y destruyen en tiempo de ejecución. Esto permite dimensionar la estructura de datos
de una forma precisa: se va asignando memoria en tiempo de ejecución según se va necesitando.

Ventajas de utilizar memoria dinámica vs memoria estática


La memoria dinámica sirve para que los programadores se adapten siempre al tamaño del
problema que tienen que resolver sin desperdiciar recursos de memoria y esto se traduce en una
mayor eficiencia en la ejecución de los programas, las ventajas de utilizar memoria dinámica se
valoran mejor en comparación con la utilización de la reserva de la memoria estática.

Colas (Queue)

Estructura lineal de tipo FIFO (First In, First Out). Se pueden realizar las siguientes dos operaciones:

- Colocar un elemento al final


- Quitar un elemento del principio

Formas de implementación:
- Arreglo y dos variables una para el inicio y fin de la cola
- Listas ordenadas

Pilas (stack)

Estructura lineal. Una estructura de datos en la cual solo se pueden hacer 2 operaciones:

- colocar un elemento al final, (push)


- o quitar un elemento del final. (pop)

Tipo LIFO (Last In, First out)


Formas de implementación
- Arreglo y variable con el índice del actual elemento
- Listas ordenadas

Si la pila sobrepasa su tamaño máximo devuelve un error tipo STACK OVERFLOW.

Listas

También hay veces que se requieren tener listas de números y agregar números a dichas listas
pero no al final ni al principio, sino en medio.
Para solucionar estos y otros problemas, existen las litas enlazadas.
Las listas enlazadas son estructuras de datos compuestas por una sucesión de elementos llamados
nodos; en la que cada nodo contiene un dato y la dirección del próximo nodo, en caso de que haya
próximo.
Operaciones:
- Recorrido
- Inserción
- Eliminación
- Búsqueda

Listas Doblemente Enlazadas

Una lista doble, ó doblemente ligada es una colección de nodos en la cual cada nodo tiene dos
punteros, uno de ellos apuntando a su predecesor (li) y otro a su sucesor (ld). Por medio de estos
punteros se podrá avanzar o retroceder a través de la lista, según se tomen las direcciones de uno
u otro puntero.

La estructura de un nodo en una lista doble es la siguiente:


Existen dos tipos de listas doblemente ligadas:

 Listas dobles lineales. En este tipo de lista doble, tanto el puntero izquierdo del primer
nodo como el derecho del último nodo apuntan a NIL.
 Listas dobles circulares. En este tipo de lista doble, el puntero izquierdo del primer nodo
apunta al último nodo de la lista, y el puntero derecho del último nodo apunta al primer
nodo de la lista.

Debido a que las listas dobles circulares son más eficientes, los algoritmos que en esta sección se
traten serán sobre listas dobles circulares.
En la figura siguiente se muestra un ejemplo de una lista doblemente ligada lineal que almacena
números:

En la figura siguiente se muestra un ejemplo de una lista doblemente ligada circular que almacena
números:

You might also like