PILA.
Una pila representa una estructura lineal de datos en la que se puede agregar o quitar elementos únicamente por uno de los extremos. En consecuencia, los elementos de una pila se eliminan en orden inverso al que se insertaron; es decir, el ultimo elemento que se mete a la pila es el primero que se saca. Debido a esta característica, se le conoce como estructura LIFO, (el ultimo en entrar es el primero en salir).
Existen numerosos casos prácticos en los que se utiliza el concepto de pila; por ejemplo, una pila de platos, una pila de latas, una pila de libros etc.
Una pila se define formalmente como una colección de datos a los cuáles se puede acceder mediante un extremo, que se conoce generalmente como tope.
OPERACIONES CON PILAS.
La definición de una estructura de datos queda completa al incluir las operaciones que se pueden realizar en ella. Para el caso de las pilas, las operaciones básicas que se pueden llevar a cabo son:
- Insertar un elemento---push---en la pila.
- Eliminar un elemento---pop---en la pila.
Y las operaciones auxiliares:
- pila_vacía.
- pila_llena.
Pila_vacía (PILA, TOPE, BAND)
{Este algoritmo verifica si una estructura tipo pila esta vacía, asignando a BAND el valor de verdad correspondiente. La pila se implementa en un arreglo unidimensional. TOPE es un parámetro de tipo entero. BAND es un parámetro de tipo booleano}
- si (TOPE=0) {verifica si no hay elementos almacenados en la pila}
entonces
Hacer BAND--verdadero {la pila esta vacía}
si no
Hacer BAND--falso {la pila no esta llena}
2. { fin del condicional del paso 1}
pila_llena (PILA, TOPE, MAX, BAND)
{ Este algoritmo verifica si una estructura tipo pila esta llena, asignando a BAND el valor de verdad correspondiente. La pila se implementa en un arreglo unidimensional de MAX elementos. TOPE es un parámetro de tipo entero. BAND es un parámetro de tipo booleano}
1. si (TOPE=MAX)
entonces
Hacer BAND----verdadero {la pila esta llena}
si no
Hacer BAND---falso{la pila no esta llena}
2. {fin del condicional del paso 1}
Llamada a Subprogramas.
Cuando se tiene un programa que llama a subprograma, también conocido como modulo o función, internamente se usan pilas para guardar el estado de las variables del programa, así como las instrucciones pendientes de ejecución del subprograma, los valorea almacenados en la pila se recuperan para continuar con la ejecución del programa en el punto en el cual fue interrumpido. Además de las variables se recupera la dirección del programa en la que se hizo la llamada, por que a esa pocisión se regresa el control del proceso.
RECURSIVIDAD.
La recursion es un recurso muy poderoso que permite expresar soluciones simples y naturales a ciertos tipos de problemas. Es importante recordad que no todos los problemas son naturales recursivos; algunos si lo son y otros no.
La recursion se puede presentar de dos maneras diferentes:
a) Directa: el programa o subprograma se llama directamente así mismo.
b) Indirecta: el subprograma llama a otro subprograma y este en algún momento, llama nuevamente a primero.
TRATAMIENTO DE EXPRESIONES ARITMÉTICAS.
Un problema interesante en computación consiste en convertir expresiones en notación infija a su equivalente en notación prefija o postfija o prefija.
* Dada la expresión A+B se dice que esta se encuentra en notación infija, porque el operador (+) se encuentra entre dos operadores ( A y B).
* Dada la expresión AB+ se dice que esta se encuentra en notación postfija, porque el operador (+) se encuentra después de los operadores (A y B).
* Dada la expresión +AB se dice que esta se encuentra en notación prefija, porque el operador (+) esta precediendo a los dos operandos.
ORDENACIÓN.
Ordenar significa reagrupar o reorganizar un conjunto de datos u objetos en una secuencia especifica.

PROGRAMA PILA ESTÁTICA.
Import java. util.scanner;
public classs pilaestatica{
public static void main (string argss []){
int dato;
int pila []= new int [5];
scanner captura= new scanner (system.in);
for (int tope=0; tope<4; tope++)
{
system.out.print\n (proporciones de datos para pila);
dato=captura.next\n+();
pila[tope]=dato;
}
for (int tope=4; tope>4; tope-)
system.out.print\n (la pila tiene los siguientes datos¨+ pila
[tope]);
}
}
0 comentarios: