Codigo de pilas 2

//PROGRAMA3. Pilas en java, push pop, pila llena y pila vacía además del imprimir

public class Pila
{
int tope=-1;
int vec[];

Pila(int max)
{
vec=new int [max];
}
public boolean llena()
{
if (tope==vec.length-1)
return true;
else
return false;
}
public boolean vacia()
{
if (tope==-1)
return true;
else
return false;
}
public void push(int dato)
{
if (llena()== true)
System.out.println("Overflow");
else
if (tope==-1)
{
tope=0;
vec[tope]=dato;
}
else
{
tope++;
vec[tope]=dato;
}
}
public int pop()
{
int aux;
if (vacia()==true)
{
System.out.println("La pila esta vacia");
return -1;
}
else
{
aux=vec[tope];
tope--;
}
return aux;
}
public void Imprime_Datos()
{
if(vacia()==true)
{
System.out.println("La pila esta vacia, ingrese datos primero:");
}
else
for(int Contador=0;Contador System.out.println("Los valores de la pila son:"+vec[Contador]);
}
}

Codigo de pilas

//PROGRAMA5. PILA. Son dos archivos "Pila.java" que define la interface de pila y //"PilaLista.java"que implementa la pila

//////////////////////////////////////...
//archivo Pila.java

package carlosFontela.utilidades

public interface Pila {
void agregar (Object o );
Object extraer();
Object verTope();
boolean estavacia();
void Vaciar()

//////////////////////////////////////...
//archivo PilaLista.java

package carlosFontela.utilidades

public class PilaLista implements Pila{

private Object elementoTope;
private PilaLista restoLista;

//constuctor
public PilaLista(){
elementoTope = null;
restoLista = null;
}

// SETER
public void agregar (Object o){
PilaLista pilaNueva = newPilaLista();
pilaNueva.elementoTope = this.elementoTope;
pilaNueva.restoLista = this.restoLista;
restoLista = pilaNueva;
elementoTope = o;
}

//GETER
public Object extraer(){
if(estaVacia())
throw new java.util.NoSuchElementException();
Object tope = elementoTope;
if (restoLista == null)
elementoTope = null;
else {
elementoTope = restoLista.elementoTope;
restoLista = restoLista.restoLista;
}
return tope;
}

//recuperar el primer elemento
public Object verTope(){
if (estaVacia())
throw new java.util.NoSuchElementException();
return elementoTope;
}

//revisar estado
public boolean estaVacia(){
return (elementoTope == null);
}

//destructor
public void Vaciar(){
elementoTope = null;
}
}//end class

Cogido Cola circular

// ColaCircular.java

// Este programa utiliza arreglos para la representacion de Colas Circulares
// y se ejecuta en modo texto

// Compilar: javac ColaCircular.java
// Ejecutar: java ColaCircular
// ========================================================

import java.io.*;

public class ColaCircular {
public static class ClaseColaCircular { // Declaracion de la clase de la Cola Circular
static int max=5; // Tamano maximo de la Cola Circular
static int colacirc[]=new int[max]; // Declaracion del arreglo para almacenar la Cola Circular
static int frente, fin; // Inidicadores del inicio y final de la Cola Circular

ClaseColaCircular() { // Constructor que inicializa el frente y el final de la Cola Circular
frente=-1; fin=-1;
System.out.println("Cola circular inicializada !!!");
}

public static void Mostrar() {
int i=0;
System.out.println("\n\n<<< MOSTRAR COLA CIRCULAR >>>");
if(frente==-1) {
System.out.println("\nCola Circular vacia !!!");
}
else {
i=frente;
do {
System.out.println("colacirc["+i+"]="+colacirc[i]);
i++;
if(i==max && frente>fin) i=0; // Reiniciar en cero (dar la vuelta)
}while(i!=fin+1);
}

System.out.println("frente="+frente);
System.out.println("fin="+fin);
System.out.println("max="+max);
}

public static void Insertar(int dato) {
if((fin==max-1 && frente==0) || (fin+1==frente)) {
System.out.println("\nCola Circular llena !!!");
return;
}
if(fin==max-1 && frente!=0) fin=0; else fin++;
colacirc[fin]=dato;
if(frente==-1) frente=0;
}

public static void Eliminar() {
System.out.println("\n\n<<< ELIMINAR DATO >>>");
if(frente==-1) {
System.out.println("Cola Circular vacia !!!");
return;
}
System.out.println("Dato eliminado = "+colacirc[frente]);
if(frente==fin) {
frente=-1; fin=-1;
return;
}
if(frente==max) frente=0; else frente++;
}
}

// Declaracion del objeto ColaCircular
static ClaseColaCircular ColaCircular=new ClaseColaCircular();

// Funcion principal
public static void main(String args[]) throws IOException {
int op=0;
do {
System.out.println("\n\n<<< COLAS CIRCULARES >>>");
System.out.println("1.- Insertar");
System.out.println("2.- Eliminar");
System.out.println("3.- Mostrar");
System.out.println("0.- Salir");

System.out.print("Opcion? ---> ");
op=getInt();
switch(op) {
case 1 : Altas(); break;
case 2 : ColaCircular.Eliminar(); break;
case 3 : ColaCircular.Mostrar(); break;
}
}while(op!=0);
}

public static void Altas() throws IOException {
int dato;
System.out.println("\n\n<<< ALTAS >>>");
System.out.print("Dato a insertar? ---> ");
dato=getInt();
ColaCircular.Insertar(dato); //Invocar el metodo Insertar del objeto ColaCircular
}

// Funcion para capturar una cadena desde el teclado
public static String getString() throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
}

// Funcion para capturar un entero desde el teclado
public static int getInt() throws IOException {
String s = getString();
return Integer.parseInt(s);
}
}

Codigo de Colas

// Colas.java

// Este programa utiliza arreglos para la representacion de Colas y se ejecuta

// en modo texto

// Compilar: javac Colas.java

// Ejecutar: java Colas

// =======================================================

import java.io.*;

public class Colas {

public static class ClaseColas { // Declaracion de la clase de Colas

static int max=10; // Tamano maximo de la Cola

static int cola[]= new int[max]; // Declaracion del arreglo

static int frente, fin; // Indicadores de inicio y fin de la Cola

ClaseColas() { // Constructor que inicializa el frente y el final de la Cola

frente=0; fin=0;

System.out.println("Cola inicializada !!!");

}

public static void Insertar(int dato) {

if(fin==max) { // Esta llena la Cola?

System.out.println("\nCola llena !!!");

return;

}

cola[fin++]=dato;

System.out.println("Dato insertado !!!");

}

public static void Eliminar() {

System.out.println("\n\n<<<>>>");

if(frente==fin) { // Esta vacia la Cola?

System.out.println("\nCola vacia !!!");

return;

}

System.out.println("Elemento eliminado: "+cola[frente++]);

}

public static void Mostrar() {

int i=0;

System.out.println("\n\n<<<>>>");

if(frente==fin) System.out.println("\nCola vacia !!!");

for(i=frente; i

System.out.println("cola["+i+"]="+" "+cola[i]);

}

System.out.println("\nFrente= "+frente);

System.out.println("Final = "+fin);

System.out.println("Max = "+max);

}

}

static ClaseColas Cola=new ClaseColas(); // Declaracion del objeto Cola

// Funcion principal

public static void main(String args[]) throws IOException {

int op=0;

do {

System.out.println("\n\n<<<>>>");

System.out.println("1.- Altas");

System.out.println("2.- Eliminar");

System.out.println("3.- Mostrar");

System.out.println("0.- Salir");

System.out.print("Opcion? ---> ");

op=getInt();

switch(op) {

case 1 : Altas(); break;

case 2 : Cola.Eliminar(); break;

case 3 : Cola.Mostrar(); break;

}

}while(op!=0);

}

public static void Altas() throws IOException {

int elemento=0;

System.out.println("\n\n<<<>>>");

System.out.print("Elemento a insertar? ---> ");

elemento=getInt();

Cola.Insertar(elemento); // Invocar el metodo Insertar del objeto Cola

}

// Funcion para capturar una cadena desde el teclado

public static String getString() throws IOException {

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

String s = br.readLine();

return s;

}

// Funcion para capturar un entero desde el teclado

public static int getInt() throws IOException {

String s = getString();

return Integer.parseInt(s);

}

}

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;

public class Hanoi extends JApplet implements ActionListener {
//n Japplet de java; es una especie de aplicacion incrustada en el código de una pagina web (HTML).
//Sirve para usar funciones que no son accesibles desde la programación misma de la pagina

JTextArea resultado;
//TextArea muestra múltiples líneas de texto. Ambos componentes muestran todo su texto en el mismo formato (fuente, color...).

JTextField textoEntrada;
//JTextField es un componente que muestra una sola línea de texto.

String salida = "";
int contador=0;
// initialize the applet
public void init() {
JLabel lblTitulo, lblEntrada, lblSalida;
JButton btnProcesar;
Container contString = getContentPane();
contString.setLayout(new FlowLayout());
lblTitulo = new JLabel(" Las Torres de Hanoi ");
contString.add(lblTitulo);
lblEntrada = new JLabel("Digite la cantidad de discos");
contString.add(lblEntrada);
textoEntrada = new JTextField(4);
contString.add(textoEntrada);
textoEntrada.addActionListener(this);
btnProcesar = new JButton("Procesar");
btnProcesar.addActionListener(this);
contString.add(btnProcesar);
lblSalida = new JLabel(" Resultado: ");
contString.add(lblSalida);
resultado = new JTextArea(15, 45);
resultado.setEnabled(false);
contString.add(new JScrollPane(resultado));
}
//metodo actionPerformed
public void actionPerformed (ActionEvent e){
//inicializo en 0 el contador y la salida
contador=0;
salida="";
// Definición de los chars
char O = 'O';
char T = 'T';
char D = 'D';
//convertir lo que se escribe en textoEntrada a entero
String Entrada = "", TiLi="";
Entrada = textoEntrada.getText();
int X = Integer.parseInt(Entrada);
if (X==1){ TiLi=" -----Usted ha solicitado "+X+" disco-----\n\n";}
else {TiLi=" -----Usted ha solicitado "+X+" discos-----\n\n";}

//Control de Error, el número debe ser mayor que 0
if (X<=0) { resultado.setText(TiLi+"::ERROR::\nNecesito al menos un disco para trabajar");}
else resultado.setText(TiLi+Solve(X,O,T,D));

}
//Método Move, escribe el movimiento debido y suma al contador
public String Move(char O, char D){
String mover= "mueva el disco en "+O+" hasta "+D+"\n";
contador++;
return " movimiento numero "+contador+": "+mover;
}

//Método Solve, es el encargado de solucionar el problema
public String Solve (int X, char O, char T, char D){
//Necesita el momento en que llegue a X==0 pues usa recursividad hasta que el Stack cumple con X=0
//que es cuando empieza a sacar los valores necesitados
if (X==0)
salida +="";
else {
Solve (X-1,O,D,T);
salida += Move(O,D);
Solve (X-1,T,O,D);
}
return salida;
}
public Hanoi() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
this.getContentPane().setBackground(SystemColor.controlLtHighlight);
}}

Listas simples

public Interfase Ilista
{
public void insertar (String elemento);
public boolean eliminar (String elemento);
public String eliminar();
public boolean buscar (String elemento);
public String recorer();
public boolean vacio();
public int tamanio();

Implementacion Inferfase Ilista

public class ListaImplements Ilista
{
class nodo
{
public String dato;
public String nodoenlace;
Nodo (String);
{
dato=n;
enlace=null;
}
}

Nodo inicio;
public Lista()
{
inicio=null;
}

public boolean vacia()
{
return (inicio==null);
}

public int tamanio()
{
int n=0
Nodo temporal=inicio
While(temporal != null)
{
n++
temporal=temporal.enlace;
}

return=temporal.enlace;
}

public boolean buscar (String elemento)
{
Nodotemporal=inicio;
While(temporal != null
{
if (elemento.equals(temporal dato))
return true;
else
temporal=temporal.enlace;
}

return false;
}

public void insertar(String elemento)
{
Nodo n=new Nodo (elemento);
}

public String elemento()
{
String temporal=inicio.dato;
inicio=inicio.enlace;
return temporal;
}

}

Listas enlazadas

import java.IO*;
import java.util.Ramdon;

class nodo1
{
int dato;
nodo1 enlace;

public nodo1(int a)
{
dato=a;
nodo1 enlace;
}

}

class lista
{
private nodo1 Inicio;
public Lista()
{
inicio=null;
}

pubic lista insertar cabeza(int a)
{
nodo1 nuevo=new nodo1(a);
nuevo.enlace=inicio;
inicio=nuevo;
return this;
}

public void visualizar()
{
nodo1 actual;
actual=inicio;
While(actual != null)
{
System.out.println(actual.dato+"");
actual=actual.enlace;
}
}

public nodo1 buscar(int dat)
{
nodo1 j;
Try
{
for(j=inicio; j != null; j=j.enlace)
{
if (dat==j.dato);
return j;
}
}

Catch(exception e)()
return null;
}

}

public class principal
{
public static void main(String [] args)
{
lista1=new lista();
for(int i=0; i<5; i++)
{
insertarCabeza(i+2);
}

i.visual();
System.out.println();
nodo1 n=1.buscar(3);
System.out.println(n.dato);
1.insertar(IO.n)
1.visualizar();
}

}