Estructuras de Datos
par ANA RANGEL
1. PILAS
1.1. Es una estructura de datos en que se puede agregar o quitar elementos únicamente por uno de los extremos.De esta manera, los elementos de una pila se eliminan en el orden inverso al que se insertaron, es decir primero el último.
1.1.1. Se accede a los datos por un extremo al que se le conoce como tope.
1.1.2. Tienen dos operaciones básicas: push (para insertar un elemento) y pop (para extraer un elemento).
1.2. VENTAJAS Cuando se implementa con datos enlazados, no existe el problema de tener que fijar el tamaño máximo de la pila, es decir, no se necesita saber la cantidad de elementos que va a contener. Esto se debe a que al ser implementadas a base de punteros, se va tomando memoria a medida que se cargan los datos, si no hay más memoria disponible no se ingresan más datos.
1.3. DESVENTAJAS Esta implementación si se hace mediante arreglos, es necesario fijar de antemano el número máximo de elementos que puede contener la pila, MAX_ELEM, y por lo tanto al apilar un elemento es necesario controlar que no se inserte un elemento si la pila está llena.
2. LISTAS
2.1. Una lista es una estructura de datos lineal que se puede representar simbólicamente como un conjunto de nodos enlazados entre sí.
2.2. Listas densas. Cuando la estructura que contiene la lista es la que determina la posición del siguiente elemento.
2.3. Listas enlazadas. Es una estructura lineal que almacena una colección de elementos generalmente llamados nodos, en donde cada nodo puede almacenar datos y ligas a otros nodos.
2.4. VENTAJAS Las listas son dinámicas, es decir, se pueden almacenar en ellas tantos elementos como se necesiten, siempre y cuando haya espacio suficiente en la memoria de la computadora. Al insertar un elemento en la lista, la operación tiene un tiempo constante independientemente de la posición en la que se inserte, solo se debe crear el nodo y modificar los enlaces de los mismos. Al eliminar un elemento sucede lo mismo que se mencionó en el punto anterior.
2.5. DESVENTAJAS El acceso a un elemento es más lento, debido a que la información no está en posiciones contiguas en la memoria de la computadora, por lo que no se puede acceder a un elemento con base en su posición como se hace en los arreglos.
3. COLAS
3.1. Colas simples: Se inserta por un sitio y se saca por otro, en el caso de la cola simple se inserta por el final y se saca por el principio.
3.2. Colas circulares: En las colas circulares se considera que después del último elemento se accede de nuevo al primero. De esta forma el final de la cola es a su vez el principio.
3.3. Colas con prioridad: Las colas con prioridad se implementan mediante listas o arrays ordenados. No nos interesa en este caso que salgan en el orden de entrada sino con una prioridad que se le asigna.
3.4. DESVENTAJAS La implementación de las colas de prioridad es costosa en algunas implementaciones.
3.5. APLICACIONES Las colas, al igual que las pilas, resultan de aplicación habitual en muchos problemas informáticos. Su utilización es infinita, sobre todo en aquellos problemas que tienen un componente de simulación de procesos, por ejemplo la simulación de una cola formada frente a un cajero automático. Para modelar 'colas reales' en el mundo de las computadoras: colas de tareas, colas de procesos, colas de impresión en el sistema operativo Windows, etc. Cada usuario de una red de Windows coloca sus trabajos de impresión y el sistema lo imprime en el mismo orden en que fueron insertados en la cola de impresión. La aplicación más común de las colas es la organización de tareas de un ordenador. Los procesos forman colas para la utilización de los recursos de un sistema computacional.