Pila
Una pila representa una estructura lineal de datos en la que se puede agregar o quitar elementos únicamente por uno de los dos extremos y puede implementarse de manera estática o dinámica.Elementos de una pila:
Vector: Es donde se colocaran los elementos de la pila.
Máximo: Indicara el tamaño
de la pila.
Cima: Apuntara al último elemento que entro a la pila.
Política:
"El ultimo que llega es el primero que sale".
Operaciones de una pila:
Pila_llena: Regresa cierto si la cima es igual a máximo y
regresa falso si cima es diferente de máximo.
Pila_vacia: Regresa
cierto si la cima es -1 en caso contrario regresa falso.
Push: Agregar elementos a la pila
Pop: Sacar elementos de la pila
Algoritmo de la clase pila programado en C#
using System;
using System.Windows.Forms;
//en la parte de using System; se pone esta línea para poder usar los MessageBox.Show("");
namespace PilaEjemplo
{
class Pilas
{
class Pilas
{
private int cima;
private int[] lapila;
public Pilas() { }
public Pilas(int max)
{
lapila = new int[max];
maximo = max;
cima =
-1;
}
public Boolean pila_llena()
{
if (cima == maximo-1)
{ return true; }
else
{ return false; }
}
public Boolean pila_vacia()
{
if (cima == -1)
{
return true;
}
else
{
return false;
}
}
public void push(int n)
{
if (pila_llena() == true)
{
MessageBox.Show("Pila llena");
}
else
{
cima++;
lapila[cima] = n;
}
}
public int pop()
{
int n = 0;
if (pila_vacia() == true)
{
MessageBox.Show("Pila vacia");
return n;
}
else
{
n = lapila[cima];
cima--;
return n;
}
}
}
}
Ejemplo:
Se creo una aplicación con el siguiente diseño:
}
Ejemplo:
Se creo una aplicación con el siguiente diseño:
Se les cambio la propiedad "name" a los Button y TextBox
-Al TextBox que esta a la derecha de donde dice Maximo se le puso en la propiedad name txtmaximo
-Al TextBox que esta a la derecha de donde dice Numero se le puso en la propiedad name txtnumero
-Al boton Push se le cambio la propiedad name por btnpush
-Al boton Pop se le cambio la propiedad name por btnpop
-Al boton Crear se le cambio la propiedad name por btncrear
Código de la aplicación usando la clase pilas:
namespace PilaEjemplo
{
public partial class Form1 : Form
{
Pilas objeto = new Pilas();
public Form1()
{
InitializeComponent();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btncrear_Click(object sender, EventArgs e)
{
int m = int.Parse(txtmaximo.Text);
objeto = new Pilas(m);
MessageBox.Show("Pila
Creada");
}
private void btnpush_Click(object sender, EventArgs e)
{
int n = int.Parse(txtnumero.Text);
objeto.push(n);
txtnumero.Clear();
txtnumero.Focus();
}
private void btnpop_Click(object sender, EventArgs e)
{
int n;
n = objeto.pop();
MessageBox.Show("Salio:" + n);
}
}
}
Que agradable sujeto<3
ResponderBorrar