#1 Implementar una pila y una cola en java, en un HTML
Tengo que presentar un trabajo para la facultad y no tengo mucha idea de como hacerlo.
Necesito mostrar en una pagina Html como operan una pila y una cola codificadas en java.
Tengo que poner unos botones para hacer las operaciones de agregar elementos etc.
Tengo los fuentes de la clase cola y pila pero no se como utilizarlos.
Alguien me puede ayudar ?
Desde ya Gracias muchachos.
Aca estan los fuentes
********************************
// Cola.java
// Interfaz general de Colas:
interface InterfazCola{
// El constructor devuelve una Cola vacía
public boolean EsVacia();
// Devuelve true si es vacía
public void Inserta(Elemento x);
// Incluye x en la Cola de "this"
public Elemento Cabeza() throws IllegalArgumentException;
// Devuelve el objeto en cabeza de la Cola "this"
public void Resto() throws IllegalArgumentException;
// Obtiene la cola de la Cola actual (extrae el elemento en cabeza)
public Object clone();
// Saca un duplicado de la Cola "this". Devuelve un objeto
// del tipo Cola concreto que se este empleando.
public String toString();
// Pasa la Cola a String.
}
class Cola implements InterfazCola {
// Clase Nodo para la implementación de Colas dinámicas
class Nodo {
Elemento Info; // Información almacenada en el nodo
Nodo Siguiente; // Nodo siguiente
public Nodo(Elemento e, Nodo n){
Info=e;
Siguiente=n;
}
}
private Nodo NodoCabeza; // Nodo en cabeza de la Cola
private Nodo NodoFinal; // Nodo en Cola
public Cola(){
// Devuelve una Cola vacía
NodoCabeza=null;
NodoFinal=null;
}
public boolean EsVacia(){
return (NodoCabeza == null);
}
public void Inserta(Elemento x) {
Nodo Nuevo;
Nuevo=new Nodo(x, null);
if (NodoCabeza==null) NodoCabeza=Nuevo;
else NodoFinal.Siguiente=Nuevo;
NodoFinal=Nuevo;
}
public Elemento Cabeza()throws IllegalArgumentException {
if (NodoCabeza == null) throw new IllegalArgumentException();
else return NodoCabeza.Info;
}
public void Resto() throws IllegalArgumentException{
if (NodoCabeza == null) throw new IllegalArgumentException();
else NodoCabeza=NodoCabeza.Siguiente;
}
public Object clone(){
Cola c1;
Nodo actual, aux, previo;
aux=null;
c1=new Cola();
if (NodoCabeza != null)
{
actual=NodoCabeza;
previo=null;
while (actual != null){
aux=new Nodo(actual.Info, null);
if (previo != null) previo.Siguiente=aux;
else c1.NodoCabeza=aux;
previo=aux;
actual=actual.Siguiente;
}
c1.NodoFinal=aux;
}
return (Object)c1;
}
public String toString(){
String s;
Nodo actual;
s=new String(" ");
actual=NodoCabeza;
while (actual != null){
s=s.concat(actual.Info.toString());
actual=actual.Siguiente;
// if (actual != null) s=s.concat(" ");
}
s=s.concat(" ");
return s;
}
}
*****************************************
// Pila.java
// Interfaz general de Pilas:
interface InterfazPila{
// El constructor devuelve una Pila vacía
public boolean EsVacia();
// Devuelve true si this es vacía
public void APila(Elemento x);
// Apila x en la Pila "this"
public Elemento Tope() throws IllegalArgumentException;
// Devuelve el objeto en el tope de la Pila "this"
public void DesaPila() throws IllegalArgumentException;;
// Extrae el tope de la Pila actual
public Object clone();
// Saca un duplicado de la Pila "this". Devuelve un objeto
// del tipo Pila concreto que se este empleando.
public String toString();
// Pasa la Pila a String.
}
class Pila implements InterfazPila {
// Clase Nodo para la implementación de Pilas dinámicas
class Nodo {
Elemento Info; // Información almacenada en el nodo
Nodo Siguiente; // Nodo siguiente
public Nodo(Elemento e, Nodo n){
Info=e;
Siguiente=n;
}
}
private Nodo NodoCabeza; // Nodo en cabeza
// Devuelve una Pila vacía
public Pila(){ NodoCabeza=null; }
public boolean EsVacia(){
return (NodoCabeza == null);
}
public void APila(Elemento x) {
Nodo NuevaCabeza;
NuevaCabeza=new Nodo(x, NodoCabeza);
NodoCabeza=NuevaCabeza;
}
public Elemento Tope()throws IllegalArgumentException {
if (NodoCabeza == null) throw new IllegalArgumentException();
else return NodoCabeza.Info;
}
public void DesaPila() throws IllegalArgumentException{
if (NodoCabeza == null) throw new IllegalArgumentException();
else NodoCabeza=NodoCabeza.Siguiente;
}
public Object clone(){
Pila l1;
Nodo actual, aux, previo;
l1=new Pila();
if (NodoCabeza != null)
{
actual=NodoCabeza;
previo=null;
while (actual != null){
aux=new Nodo(actual.Info, null);
if (previo != null) previo.Siguiente=aux;
else l1.NodoCabeza=aux;
previo=aux;
actual=actual.Siguiente;
}
}
return (Object)l1;
}
public String toString(){
String s;
Nodo actual;
s=new String(" ");
actual=NodoCabeza;
while (actual != null){
s=s.concat(actual.Info.toString());
actual=actual.Siguiente;
// if (actual != null) s=s.concat(" <- ");
}
s=s.concat(" ");
return s;
}
}
Necesito mostrar en una pagina Html como operan una pila y una cola codificadas en java.
Tengo que poner unos botones para hacer las operaciones de agregar elementos etc.
Tengo los fuentes de la clase cola y pila pero no se como utilizarlos.
Alguien me puede ayudar ?
Desde ya Gracias muchachos.
Aca estan los fuentes
********************************
// Cola.java
// Interfaz general de Colas:
interface InterfazCola{
// El constructor devuelve una Cola vacía
public boolean EsVacia();
// Devuelve true si es vacía
public void Inserta(Elemento x);
// Incluye x en la Cola de "this"
public Elemento Cabeza() throws IllegalArgumentException;
// Devuelve el objeto en cabeza de la Cola "this"
public void Resto() throws IllegalArgumentException;
// Obtiene la cola de la Cola actual (extrae el elemento en cabeza)
public Object clone();
// Saca un duplicado de la Cola "this". Devuelve un objeto
// del tipo Cola concreto que se este empleando.
public String toString();
// Pasa la Cola a String.
}
class Cola implements InterfazCola {
// Clase Nodo para la implementación de Colas dinámicas
class Nodo {
Elemento Info; // Información almacenada en el nodo
Nodo Siguiente; // Nodo siguiente
public Nodo(Elemento e, Nodo n){
Info=e;
Siguiente=n;
}
}
private Nodo NodoCabeza; // Nodo en cabeza de la Cola
private Nodo NodoFinal; // Nodo en Cola
public Cola(){
// Devuelve una Cola vacía
NodoCabeza=null;
NodoFinal=null;
}
public boolean EsVacia(){
return (NodoCabeza == null);
}
public void Inserta(Elemento x) {
Nodo Nuevo;
Nuevo=new Nodo(x, null);
if (NodoCabeza==null) NodoCabeza=Nuevo;
else NodoFinal.Siguiente=Nuevo;
NodoFinal=Nuevo;
}
public Elemento Cabeza()throws IllegalArgumentException {
if (NodoCabeza == null) throw new IllegalArgumentException();
else return NodoCabeza.Info;
}
public void Resto() throws IllegalArgumentException{
if (NodoCabeza == null) throw new IllegalArgumentException();
else NodoCabeza=NodoCabeza.Siguiente;
}
public Object clone(){
Cola c1;
Nodo actual, aux, previo;
aux=null;
c1=new Cola();
if (NodoCabeza != null)
{
actual=NodoCabeza;
previo=null;
while (actual != null){
aux=new Nodo(actual.Info, null);
if (previo != null) previo.Siguiente=aux;
else c1.NodoCabeza=aux;
previo=aux;
actual=actual.Siguiente;
}
c1.NodoFinal=aux;
}
return (Object)c1;
}
public String toString(){
String s;
Nodo actual;
s=new String(" ");
actual=NodoCabeza;
while (actual != null){
s=s.concat(actual.Info.toString());
actual=actual.Siguiente;
// if (actual != null) s=s.concat(" ");
}
s=s.concat(" ");
return s;
}
}
*****************************************
// Pila.java
// Interfaz general de Pilas:
interface InterfazPila{
// El constructor devuelve una Pila vacía
public boolean EsVacia();
// Devuelve true si this es vacía
public void APila(Elemento x);
// Apila x en la Pila "this"
public Elemento Tope() throws IllegalArgumentException;
// Devuelve el objeto en el tope de la Pila "this"
public void DesaPila() throws IllegalArgumentException;;
// Extrae el tope de la Pila actual
public Object clone();
// Saca un duplicado de la Pila "this". Devuelve un objeto
// del tipo Pila concreto que se este empleando.
public String toString();
// Pasa la Pila a String.
}
class Pila implements InterfazPila {
// Clase Nodo para la implementación de Pilas dinámicas
class Nodo {
Elemento Info; // Información almacenada en el nodo
Nodo Siguiente; // Nodo siguiente
public Nodo(Elemento e, Nodo n){
Info=e;
Siguiente=n;
}
}
private Nodo NodoCabeza; // Nodo en cabeza
// Devuelve una Pila vacía
public Pila(){ NodoCabeza=null; }
public boolean EsVacia(){
return (NodoCabeza == null);
}
public void APila(Elemento x) {
Nodo NuevaCabeza;
NuevaCabeza=new Nodo(x, NodoCabeza);
NodoCabeza=NuevaCabeza;
}
public Elemento Tope()throws IllegalArgumentException {
if (NodoCabeza == null) throw new IllegalArgumentException();
else return NodoCabeza.Info;
}
public void DesaPila() throws IllegalArgumentException{
if (NodoCabeza == null) throw new IllegalArgumentException();
else NodoCabeza=NodoCabeza.Siguiente;
}
public Object clone(){
Pila l1;
Nodo actual, aux, previo;
l1=new Pila();
if (NodoCabeza != null)
{
actual=NodoCabeza;
previo=null;
while (actual != null){
aux=new Nodo(actual.Info, null);
if (previo != null) previo.Siguiente=aux;
else l1.NodoCabeza=aux;
previo=aux;
actual=actual.Siguiente;
}
}
return (Object)l1;
}
public String toString(){
String s;
Nodo actual;
s=new String(" ");
actual=NodoCabeza;
while (actual != null){
s=s.concat(actual.Info.toString());
actual=actual.Siguiente;
// if (actual != null) s=s.concat(" <- ");
}
s=s.concat(" ");
return s;
}
}
0