top of page

La pila y cola, implantación estática.

*Pila:
-Una pila es un TDA donde todas las operaciones se hacen sobre una posición de la pila “el tope”.
-El tope de la pila es la posición del último elemento.
-A diferencia de la lista es una pila no se puede insertar o eliminar, sino que tiene que ser solo del tope.
-La pila se puede implementar mediante arreglos, en cayo caso su dimensión o longitud es fija y mediante listas enlazadas, en cuyo se utilizaba memoria dinámica y no existe limitación  en su tamaño excepto la memoria libre de la computadora.

typedef struct
{
               tipoDato elem[TAM];
                      int tope;
} pila;

Funciones de una pila.
Inicialización (pila p): Crea una nueva pila.
Push (pila p, tipoDato x): Insertar el dato x en el tope de la pila.
Pop (pila): Elimina de la pila.
Ver tope (pila p): Regresa el dato del tope de la pila pero sin eliminarlo.
Vacía (pila p): Regresa verdadero (1) si la pila esta vacía y falso (0) si la pila tiene espacios libres para insertar elementos.
Llena (pila p): Regresa verdadero (1) si el tope = TAM y falso (0) si la pila tiene espacios libres para insertar elementos.

*Cola.
Una cola es una estructura de datos que almacena elementos en una lista y permite acceder a los datos por uno de los extremos de la lista. Un elemento se inserta en la cola (parte final) de la lista y se elimina por el frente (parte inicial) de la lista. Las aplicaciones utilizan una cola para almacenar elementos en su orden de aparición u ocurrencia.
 
typedef struct
{
             tipoDato elem [TAM];
                    int frente;
                    int final;
} Cola;

-Una cola TDA es donde las operaciones se hacen sobre dos posiciones de la fila “El frente” y “El final”.
-El final de la pila es la posición del elemento último elemento insertado.
-Las inserciones de elementos se hacen en el final y mientras que las eliminaciones de elementos se hacen del frente.

A diferencia de una lista en un final no se puede insertar o eliminar de una posición p cualquiera, sino que se inserta al final y se elimina del frente.

Funciones de una cola.
Inicializa (cola c): Crea una cola nueva.
En cola (cola c, tipoDato x): Inserta el dato x en el final de la cola.
DesenCola (cola c): Regresa el dato del frente de la cola pero sin eliminarlo.
Vacía (cola c): Regresa verdadero (1) si la cola esta vacía y falso (0) si la cola tiene elementos.
Llena cola (cola c): Regresa verdadero (1) si el frente =0 y el final =TAM-1 si el final +1= frente falso (0) si la pila tiene espacios libres para insertar elementos.

 

Aplicación de las pilas.
-Notación: Infija, Prefija, Posfija.
Las pilas son estructuras de datos muy usados para la solución de diversos tipos de problemas.

Operadores y su prioridad (De mayor a menor)
() Paréntesis.
< (La punta hacia arriba) Potencia.
*, / Multiplicación y división.
+,- Suma y resta.

Notación infija:
Es la notación que sitúa el ordenador entre sus operadores.
Ventaja: Es la forma natural de escribir expresiones.
Inconveniente: Muchas veces necesita de paréntesis para indicar el orden de evaluación.
Notación posfija o polaca inversa:
Es la notación que sitúa el ordenador después de sus operandos. Se utiliza para especificar expresiones matemáticas sin paréntesis.
Ventaja: No necesita paréntesis. Es una sencilla de evaluar para una computadora.
Inconveniente: Se compila la interpretación de la expresión.

bottom of page