Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1498496 Beatriz AnaKaren Torres Rivera 1478451 Adriana Alejandra Esquivel de la Garza 1442048 Pedro Israel Escobar Lucio 1450250 Christopher Resndez Turrubiartes
PILAS
Una pila es una lista de
elementos a la cual se puede insertar o eliminar elementos nicamente por uno de los extremos. En consecuencia, los elementos de una pila sern eliminados en el orden inverso al que se insertaron, es decir, el ultimo elemento que se meta en la fila ser el primero en sacar.
Existen numerosos
casos prcticos en los que se utiliza el concepto de pila: de platos, de latas en un supermercado, etc.
Una estructura de datos tipo pila se define como: Una coleccin de datos que solo puede ser accesada por un extremo, el cual normalmente se conoce como tope.
Debido al orden en el cual se insertan o eliminan elementos de una pila, a esta estructura tambin se le conoce como estructura LIFO (last-in, first-out: ultimo en entrar, primero en salir). Las pilas pertenecen al grupo de estructuras de datos lineales, ya que los componentes ocupan lugares sucesivos en la estructura.
REPRESENTACION DE PILAS
Las pilas no son estructuras fundamentales de datos, es decir, no estn definidas como tales en los lenguajes de programacin ( como lo estn por ejemplo los arreglos). Las pilas pueden representarse mediante el uso de: Arreglos Listas enlazadas
arreglos deberemos definir el tamao mximo de la pila, y adems una variable auxiliar a la que se le denominara TOPE, que ser un apuntador en el ultimo elemento insertado en la pila
tienen las limitaciones de espacios de memoria reservada, propia de los arreglos. Una vez dado un mximo de capacidad de pila, no es posible insertar un numero de elementos mayor al mximo fijado. Si la pila estuviera llena y se intentara insertar un nuevo valor, se producira un error con el nombre de desbordamiento (overflow). Una posible solucin para este tipo de errores consiste en definir pilas de gran tamao, pero resultara ineficiente y costoso si solo se utilizaran algunos elementos
con pilas es tratar de eliminar un elemento de una pila vaca. Este tipo de error se conoce como subdesbordamiento (underflow)
A continuacin, los algoritmos correspondientes a lo anterior, sabiendo que las pilas tienen un nmero mximo de elementos (MAX) y que el ultimo de esto esta dado por TOPE.
Aplicaciones de Pilas
Las pilas son una estructura de datos muy usada en
la solucin de diversos tipos de problemas, en el rea de la computacin. Ahora se analizarn algunos de los casos ms representativos de aplicacin de las mismas:
Llamadas a subprogramas Recursividad Tratamiento de expresiones aritmticas Ordenacin
Llamadas a Subprogramas
Cuando se tiene un programa que llama a un subprograma, tambin
conocido co-mdulo o funcin, internamente se usan pilas para guardar el estado de las variable del programa, as como las instrucciones pendientes de ejecucin en el momento que hace la llamada. Termina la ejecucin del subprograma, los valores almacenados en la pila se recuperan para continuar con la ejecucin del programa en el punto en el cual fue interrumpido. Adems de las variables se recupera la direccin del programa la que se hizo la llamada, porque a esa posicin se regresa el control del proceso.
Por ejemplo, que se tiene un programa principal (PP) que llama los
subprogramas UNO y. DOS. A su vez, el subprograma DOS llama al TRES. Cada vez que la ejecucin de uno de los subprogramas concluye, se regresa el control al nivel inmediato superior. Cuando el programa PP llama a UNO, se guarda en una pila la posicin en la que se hizo la llamada . Al terminar UNO, el control se regresa a PP recuperan previamente la direccin de la pila. Al llamar a DOS, nuevamente se guarda en la direccin de PP en la pila . Cuando DOS llama a TRES, se pone en la pila la direccin de DOS. Despus de procesar TRES, se recupera la posicin DOS para continuar con su ejecucin. Al terminar DOS se regresa el con a PP, obteniendo previamente la direccin guardada en la pila.
tipo de aplicaciones por lo siguiente: Permiten guardar la direccin del programa, o subprograma, desde donde se hizo la llamada a otros subprogramas, para regresar posteriormente y seguir ejecutndolo a partir de la instruccin inmediata a la llamada. Permiten guardar el estado de las variables en el momento en que se hace la llamada, para seguir ocupndolas al regresar del subprograma
convertir las expresiones de notacin infija a su equivalente de notacin prefija o posfija que es utilizado en el mundo del lenguaje computacional. Primero hablaremos de que tratan estos trminos para despus realizar su transformacin.
de la forma A + B se dice que es notacin infija, ya que el operador (+) se encuentra entre los dos operandos ( A, B). Cuando una expresin matemtica se encuentra de la forma +AB se dice que es notacin prefija, ya que el operador (+) se encuentra antes de los dos operandos ( A, B).
de la forma AB+ se dice que es notacin posfija, ya que el operador (+) se encuentra despus de los dos operandos ( A, B).
(prefija y posfija) es que no son necesarios los parntesis para el orden en que se efectuarn las operaciones correspondientes, ya que estos estn establecidos por el orden de los operadores con respecto a los operandos.
operadores en este tipo de expresiones (acomodados de arriba hacia abajo por su prioridad de ejecucin
primero. En caso de que existan dos operadores iguales en la misma operacin, se procesarn de izquierda a derecha. Las subexpresiones que se encuentran entre parntesis tendrn ms prioridad que cualquier operador.
Ejemplo
Expresin infija: X + Z * W Expresin posfija: XZW*+ El primer operador que se procesa durante la
traduccin de la expresin es la multiplicacin, paso 1, debido a que es el de ms alta prioridad. Se coloca el operador de tal manera que los operandos afectados por l lo precedan.
criterio, los dos operandos lo preceden. En este caso el primer operando es X y el segundo es ZW*
Explicacin
En los pasos 1, 3 y 5 el smbolo analizado -un
operando- se agrega directamente a EPOS. Al analizar el operador + (paso 2) se verifica si en PILA hay operadores de mayor o igual prioridad. En este caso, PILA est vaca; por tanto, se pone el smbolo en el tope de ella. Con el operador * (paso 4) sucede algo similar.
prioridad -la suma tiene menor prioridad que la multiplicacin-, por lo que se agrega el operador * a PILA. En los dos ltimos pasos, 6 y 7, se extraen de PILA sus elementos, agregndolos a EPOS.