Pregunta sobre pila

22/07/2006 - 01:01 por DotNeteer | Informe spam
Les agradeceria su ayuda gente
Tengo una pila
public class pila
{
nodo cima;
public pila()
{
cima = null;
}

public bool pilaVacia()
{
return (cima == null);
}

public void push(DatoPila listTiempo)
{
nodo nuevo = new nodo(listTiempo);
if(!pilaVacia())
{
nuevo.anterior = cima;
cima.siguiente = nuevo;
}
cima = nuevo;
}//push insertar


public DatoPila verCima()
{
DatoPila resultado = null;
if(!pilaVacia())
resultado = cima.dato;

return resultado;
}

public DatoPila pop()
{
DatoPila d;
if(cima.anterior == null)
{
d = cima.dato;
cima = null;
}
else
{
d = cima.dato;
cima = cima.anterior;
cima.siguiente.anterior = null;
cima.siguiente = null;
}
return d;
}//pop eliminar

public void eliminarPila()
{
DatoPila aux;
while(!pilaVacia())
aux = pop();
}
}
Lo que deseo hacer es poner limite a la pila, es decir
que solo se pueda hacer digamos 12 pops y 12 push,
en si que digamos que ya tengo 12 elementos en la pila, y hago un push
entonces el elemento que meti al inicio se debe eliminar y meter el nuevo
elemento
Gracias por su ayuda
 

Leer las respuestas

#1 Aura
22/07/2006 - 15:50 | Informe spam
Eso parece una tarea de la universidad:)

Yo no conozco mucho de C# todavia pero lo que creo que debes tener una
propiedad estatica integer en la clase que en el push de agregue uno en el
pop te lo reste. Cuando se pase en el push solo recorre los elementos hasta
el primero y borralo antes de insertar el nuevo.


"DotNeteer" escribió en el mensaje
news:
Les agradeceria su ayuda gente
Tengo una pila
public class pila
{
nodo cima;
public pila()
{
cima = null;
}

public bool pilaVacia()
{
return (cima == null);
}

public void push(DatoPila listTiempo)
{
nodo nuevo = new nodo(listTiempo);
if(!pilaVacia())
{
nuevo.anterior = cima;
cima.siguiente = nuevo;
}
cima = nuevo;
}//push insertar


public DatoPila verCima()
{
DatoPila resultado = null;
if(!pilaVacia())
resultado = cima.dato;

return resultado;
}

public DatoPila pop()
{
DatoPila d;
if(cima.anterior == null)
{
d = cima.dato;
cima = null;
}
else
{
d = cima.dato;
cima = cima.anterior;
cima.siguiente.anterior = null;
cima.siguiente = null;
}
return d;
}//pop eliminar

public void eliminarPila()
{
DatoPila aux;
while(!pilaVacia())
aux = pop();
}
}
Lo que deseo hacer es poner limite a la pila, es decir
que solo se pueda hacer digamos 12 pops y 12 push,
en si que digamos que ya tengo 12 elementos en la pila, y hago un push
entonces el elemento que meti al inicio se debe eliminar y meter el nuevo
elemento
Gracias por su ayuda

Preguntas similares