You are on page 1of 37

Ejemplo Cola1: import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.

*; public class Cola1 { static double SALDO=0; public static void main(String[]args) { int i,opc,nit; Cola A=new Cola(10); Cola B=new Cola(20); Cliente C=new Cliente(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta Por Atender","4. Consulta Atendidos","5.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); if(A.existe(C.nit) || B.existe(C.nit)) JOptionPane.showMessageDialog(null,"Existe Nit"); else if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion(C); } break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else { A.borra(C); if(!B.llena()) B.adicion(C); } break;

case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else JOptionPane.showMessageDialog(null,A.imprime(" Atencion ")); break; case 4: if(B.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atendidos Vacia"); else JOptionPane.showMessageDialog(null,B.imprime(" Atencion ")); } } while(opc!=5); } } class Cliente { int nit; String nomCliente; int telefono; } class Cola { int min,max,n; Cliente A[]; int i; public Cola(int n) { min=-1; max=-1; this.n=n; A=new Cliente[n]; } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if(max==n-1) return true; else return false; } void adicion(Cliente C)

{ if(min==-1) min++; max++; A[max]=new Cliente(); A[max].nit=C.nit; A[max].telefono=C.telefono; A[max].nomCliente=C.nomCliente; } void borra(Cliente C) { C.nit=A[min].nit; C.telefono=A[min].telefono; C.nomCliente=A[min].nomCliente; if(min==max) min=max=-1; else min++; } boolean existe(int nit) { boolean esta=false; if(!vacia()) for(i=min;i<=max && ! esta;i++) if(A[i].nit==nit) esta=true; return esta; } String imprime(String Aviso) { String S=" Elemenos de la Cola de: "+Aviso.toString()+"\n"; for(i=min;i<=max;i++) { S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } return S.toString(); } Ejemplo Cola2: import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class Cola2 { public static void main(String[]args)

{ int i,opc,nit; BiCola A=new BiCola(10); Info C=new Info(); Object [] valores = {"1. Adicion Mas Reciente","2. Adicion Menos Reciente","3. Borrar Menos Reciente","4. Borrar Mas Recientes","5. Consulta","6.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion_max(C); } break; case 2: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else if(!A.tope() && !A.minimo()) { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion_min(C); } break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else { A.borra_min(); } break; case 4: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia");

else { A.borra_max(); } break; case 5: if(A.vacia()) JOptionPane.showMessageDialog(null,"BiCola Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); } } while(opc!=6); } } class Info { int nit; String nomCliente; int telefono; } class BiCola { int min,max,n; Info A[]; int i; public BiCola(int n) { min=-1; max=-1; this.n=n; A=new Info[n]; for(i=0;i<n;i++) A[i]=new Info(); } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if(min==0 && max==n-1) return true; else return false; }

boolean tope() { if(max==n-1) return true; else return false; } boolean minimo() { if(min==0) return true; else return false; } void adicion_max(Info C) { if(min==-1) min=0; max++; A[max].nit=C.nit; A[max].telefono=C.telefono; A[max].nomCliente=C.nomCliente; } void adicion_min(Info C) { min--; A[min].nit=C.nit; A[min].telefono=C.telefono; A[min].nomCliente=C.nomCliente;; } void borra_min() { if(min==max) min=max=-1; else min++; } void borra_max() { if(min==max) min=max=-1; else max--; } String imprime() { String S=" Elemenos de la Cola \n"; for(i=min;i<=max;i++) {

S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } return S.toString(); } } Ejemplo Cola3: import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class Cola3 { public static void main(String[]args) { int i,opc,nit; ColaCir A=new ColaCir(3); Info C=new Info(); Object [] valores = {"1. Adicion","2.Eliminar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion(C); } break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else { A.borrar(); } break;

case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); } } while(opc!=4); } } class Info { int nit; String nomCliente; int telefono; } class ColaCir { int min,max,n; Info A[]; int i; String S=" "; public ColaCir(int n) { min=-1; max=-1; this.n=n; A=new Info[n]; for(i=0;i<n;i++) A[i]=new Info(); } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if((min==0 && max==n-1) || (max==min-1)) return true; else return false; } void adicion(Info C) { if(min==-1) min=0;

if(max==n-1) max=0; else max++; A[max].nit=C.nit; A[max].telefono=C.telefono; A[max].nomCliente=C.nomCliente;; } void borrar() { if(min==max) min=max=-1; else if(min==n-1) min=0; else min++; } String imprime() { S=" Elemenos de la Cola \n"; if(max<min) { consulta(min,n-1); consulta(0,max); } else consulta(min,max); return S.toString(); } void consulta(int inf,int sup) { for(i=inf;i<=sup;i++) { S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } } } Ejemplo Cola 3 Archivos import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class ColaArch

{ static double SALDO=0; public static void main(String[]args) { int i,opc,nit; Cola A=new Cola(10); if(A.salir()) System.exit(1); A.cargar(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena() || !A.hayMas()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else A.adicion(); break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else A.borrar(); break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); break; } } while(opc!=4); A.cerrar(); System.exit(1); } } class Cola { ArchivoBase P=new ArchivoBase(); int min,max,n,d,numreg=-1; int A[]; int i; public Cola(int n)

{ min=-1; max=-1; this.n=n; A=new int[n]; } void cargar() { P.tabla(); } boolean salir() { if(!P.lectura("cliente.txt")) return true; cargar(); if(P.tope()==0) return true; return false; } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if(max==n) return true; else return false; } boolean hayMas() { if(numreg<P.tope()) return true; else return false; } void adicion() { if(min==-1) min++; max++; numreg++; A[max]=numreg; } void borrar()

{ if(min==max) min=max=-1; else min++; } String imprime() { String S=" Elemenos de la Cola de: \n"; for(i=min;i<=max;i++) { S=S+P.consulta(A[i])+"\n"; } return S.toString(); } String Consulta() { return P.Consultabla(); } void cerrar() { P.cerrar(); } } class ArchivoBase { long longreg=34; StringBuffer linea=new StringBuffer(); RandomAccessFile arch; long pos=-1; //Numero de Registro long k; int numreg=-1; Hashtable H=new Hashtable(); boolean lectura(String Nom) { try { arch=new RandomAccessFile(Nom.toString(),"r"); } catch(FileNotFoundException e) { System.out.println("No Existe Archivo"); return false; } return true; } void tabla() { pos=0;

numreg=-1; try { do { numreg++; H.put(new String().valueOf(numreg),new String().valueOf(pos)); pos=pos+(longreg*2); } while(pos<arch.length()); } catch(IOException e) { } } void bajar() { try { arch.seek(pos); for(k=pos;k<pos+longreg;k++) { if(k==7 || k==27) linea.append(" "); linea.append(arch.readChar()); } } catch(IOException e) { } } String consulta(int n) { String S=new String().valueOf(n); linea=new StringBuffer(); pos=Long.parseLong((String) H.get(S)); bajar(); return linea.toString(); } long longitud() { long k=0; try { k=arch.length(); } catch(IOException e){} return k; }

int tope() { return numreg; } String Consultabla() { Enumeration codigo=H.keys(); String S=null; linea=new StringBuffer(); linea.append(" Codigo Nombre Telefono \n"); while(codigo.hasMoreElements()) { S=(String) codigo.nextElement(); pos=Long.parseLong((String) H.get(S))*longreg; bajar(); linea.append("\n"); } return linea.toString(); } void cerrar() { try { arch.close(); } catch(IOException e){} } } Ejemplo de Lista import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; } class Listas { Nodo p,q,r; Nodo cab=null; boolean busca_ant(int x) { p=q=cab; while(p!=null && p.info!=x) { q=p;

p=p.sig; } if(p!=null) return true; else return false; } void recorre_ant() { p=q=cab; while(p!=null) { q=p; p=p.sig; } } void adicion(int x) { if(!busca_ant(x)) { r=new Nodo(x); if(cab==null) cab=r; else q.sig=r; r.sig=null; } } void borrar(int x) { if(busca_ant(x)) { if(p==cab) cab=cab.sig; else q.sig=p.sig; } } String consulta() { String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString();

} } public class Lista { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Borrar:")); L.borrar(info); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } } Ejemplo de Lista Circular import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; } class Listas { Nodo p,q,r;

Nodo cab=null; Nodo ult=null; boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x) { r=new Nodo(x); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=cab; } void borrar() { if(cab==ult) cab=ult=null; else { cab=cab.sig; ult.sig=cab; } } String consulta() { String S="C O N S U L T A \n" ; p=cab; do { S+=p.info+"\n"; p=p.sig; } while(p!=cab); return S.toString(); } } public class ListaCircular { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"};

do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: if(!L.vacia()) JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } } Ejemplo de Lista y Cola import javax.swing.*; class Alumno { int Cod; String Nombre; Alumno(int Cod,String Nombre) { this.Cod = Cod; this.Nombre = Nombre; } Alumno sig; } class Programa { int Id; String Nombre; Programa sig; Alumno p,q,r; Alumno cab=null; Alumno ult=null; Programa(int Id,String Nombre) { this.Id = Id;

this.Nombre = Nombre; } boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x,String y) { r=new Alumno(x,y); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=null; } void borrar() { if(cab==ult) cab=ult=null; else cab=cab.sig; } String consulta() { String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString(); } } public class ListaCola { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do {

String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } } Ejemplo Lista Encadenada import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; Nodo ant; } class Listas { Nodo p,q,r; Nodo cab=null; Nodo ult=null; boolean vacia() { if(cab==null) return true; else return false; } boolean esta(int x) {

p=q=cab; while(p!=null && p.info<x) { q=p; p=p.sig; } if(p!=null && p.info==x) return true; else return false; } void primero(int x) { r=new Nodo(x); cab=ult=r; r.ant=null; r.sig=null; } void insertar(int x) { r=new Nodo(x); q.sig=r; p.ant=r; r.ant=q; r.sig=p; } void menor(int x) { r=new Nodo(x); r.sig=cab; r.ant=null; cab.ant=r; cab=r; } void mayor(int x) { r=new Nodo(x); ult.sig=r; r.ant=ult; r.sig=null; ult=r; } void adicion(int x) { if(vacia()) primero(x); else if(x>ult.info) mayor(x);

else if(x<cab.info) menor(x); else if(!esta(x)) insertar(x); } void borrar(int x) { if(esta(x)) { if(p==cab) { if(cab==ult) cab=ult=null; else { cab=cab.sig; cab.ant=null; } } else if(p==ult) { ult=ult.ant; ult.sig=null; } else { r=p.sig; q.sig=r; r.ant=q; } } } String consulta_asc() { String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString(); } String consulta_desc() {

String S="C O N S U L T A \n" ; p=ult; while(p!=null) { S+=p.info+"\n"; p=p.ant; } return S.toString(); } } public class ListaEncadenada { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta Ascendente","4. Consulta Descendente","5.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Borrar:")); L.borrar(info); break; case 3: JOptionPane.showMessageDialog(null,L.consulta_asc()); break; case 4: JOptionPane.showMessageDialog(null,L.consulta_desc()); break; } } while(opc!=5); System.exit(1); } }

Ejemplo de Lista y Pila import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; } class Listas { Nodo p,r; Nodo cab=null; boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x) { r=new Nodo(x); r.sig=cab; cab=r; } void borrar() { cab=cab.sig; } String consulta() { String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString(); } } public class ListaPila { public static void main(String[]args) { int i,opc,info;

Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } } Ejemplo de Multilista import javax.swing.*; class Alumno { int Cod; String Nombre; Alumno(int Cod,String Nombre) { this.Cod = Cod; this.Nombre = Nombre; } Alumno sig; } class Programa { int Id; String Nombre; Programa sig; Alumno p,q,r; Alumno cab=null; Alumno ult=null; Programa(int Id,String Nombre) {

this.Id = Id; this.Nombre = Nombre; } boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x,String y) { r=new Alumno(x,y); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=null; } void borrar() { if(cab==ult) cab=ult=null; else cab=cab.sig; } String consulta() { String S="C O N S U L T A D E A L U M N O S \n" ; p=cab; while(p!=null) { S+=p.Cod+" "+p.Nombre+"\n"; p=p.sig; } return S.toString(); } } class Facultad { Programa p,q,r; Programa cab=null; Programa ult=null; boolean vacia() { if(cab==null) return true;

else return false; } void adicion(int x,String y) { r=new Programa(x,y); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=null; } void borrar() { if(cab==ult) cab=ult=null; else cab=cab.sig; } boolean existe(int id) { p=cab; while(p!=null && p.Id!=id) p=p.sig; if(p==null) return false; else return true; } void borrarAlumno() { if(!p.vacia()) p.borrar(); } void adicionAlumno(int x,String y) { p.adicion(x,y); } String consulta() { String S="C O N S U L T A D E P R O G R A M A S \n" ; p=cab; while(p!=null) { S+=p.Id+" "+p.Nombre+"\n"; p=p.sig; }

return S.toString(); } String consultaTodo() { String S="C O N S U L T A D E P R O G R A M A S \n" ; S+=p.Id+" "+p.Nombre+"\n"; S+=p.consulta(); return S.toString(); } } public class MultiLista { public static void main(String[]args) { int i,opc,cod,id; String Nombre; Facultad L=new Facultad(); Object [] valores = {"1. Adicion Programa","2. Borrar Programa","3. Consulta Programa","4.Adicion Alumno","5.Borrar Alumno","6. Consulta","7.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: cod=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Programa a Adicionar:")); Nombre=JOptionPane.showInputDialog(null," Digite Nombre A Adicionar:"); L.adicion(cod,Nombre); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; case 4: case 5: case 6: cod=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Programa:")); if(L.existe(cod)) switch(opc) { case 4: cod=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Alumno a Adicionar:"));

Nombre=JOptionPane.showInputDialog(null," Digite Nombre A Adicionar:"); L.adicionAlumno(cod,Nombre); break; case 5: L.borrarAlumno(); break; case 6: JOptionPane.showMessageDialog(null,L.consultaTodo()); } } } while(opc!=7); System.exit(1); } } Ejemplo de Pila

import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class Pila1 { static double SALDO=0; public static void main(String[]args) { int i,opc,nit; Pila A=new Pila(10); Info C=new Info(); Object [] valores = {"1. Apilar","2. Desempila","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre");

C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.apila(C); } break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Pila de Atencion Vacia"); else { A.desempila(); } break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Pila Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); } } while(opc!=4); } } class Info { int nit; String nomCliente; int telefono; } class Pila { int cab,n; Info A[]; int i,k; public Pila(int n) { cab=-1; this.n=n; A=new Info[n]; for(i=0;i<n;i++) A[i]=new Info(); } boolean vacia() { if(cab==-1) return true; else return false; }

boolean llena() { if(cab==n-1) return true; else return false; } void apila(Info C) { cab++; A[cab].nit=C.nit; A[cab].telefono=C.telefono; A[cab].nomCliente=C.nomCliente; } void desempila() { cab--; } String imprime() { String S=" Elemenos de la Pila\n"; for(i=cab;i>=0;i--) { S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } return S.toString(); } } Ejemplo de Arbol Binario import javax.swing.*; import java.util.*; class ArbolBin { NodoArbol raiz=null; NodoArbol p,q,r; Stack Pila=new Stack(); int fila=0; boolean existe(int x) { q=p=raiz; while(p!=null && x!=p.info) { q=p; if(x<p.info) {

p=p.izq; } else { p=p.der; } } if(p==null) return false; else return true; } boolean adicion(int x) { if(existe(x)) return false; // System.out.println("adicion de: "+x+"raiz: "+raiz+" q:"+q+" p: "+p); r=new NodoArbol(x); r.izq=r.der=null; if(raiz==null) { raiz=r; } else { if(x<q.info) { q.izq=r; } else { q.der=r; } } return true; } boolean masderecha(NodoArbol s) { Pila=new Stack(); while(s!=null) { Pila.push((Object) s); s=s.der; } if(Pila.empty()) return false; s=(NodoArbol) Pila.pop(); if(p==raiz) raiz=s;

else { if(q.izq==p) q.izq=s; else q.der=s; } if(Pila.empty()) return true; r=(NodoArbol) Pila.pop(); r.der=s.izq; s.izq=p.izq; s.der=p.der; return true; } boolean masizquierda(NodoArbol s) { Pila=null; while(s!=null) { Pila.push((Object) s); s=s.izq; } if(Pila.empty()) return false; s=(NodoArbol) Pila.pop(); if(p==raiz) raiz=s; else { if(q.izq==p) q.izq=s; else q.der=s; } if(Pila.empty()) return true; r=(NodoArbol) Pila.pop(); r.izq=s.der; s.izq=p.izq; s.der=p.der; return true; } void caso1Borrado()// P. Es Nodo Terminal { if(p==raiz) raiz=null; else {

if(q.izq==p) q.izq=null; if(q.der==p) q.der=null; } } void caso2Borrado()//Hijo Unico. P.der es Null P.izq es Null { if(p==raiz) { if(p.izq==null) raiz=p.der; else raiz=p.izq; } else { if(p.izq==null) { if(q.izq==p) q.izq=p.der; else q.der=p.der; } else //p.der==null { if(q.izq==p) q.izq=p.izq; else q.der=p.izq; } } } void caso3Borrado()// Dos Hijos. P.der y P.izq no es null { if(!masderecha(p.izq)) if(!masizquierda(p.der)) System.out.println(" No se pudo Borrar"); } boolean borrar(int x) { if(!existe(x)) return false; if(p.izq!=null && p.der!=null) caso3Borrado(); else if(p.izq==null && p.der==null) caso1Borrado(); else

caso2Borrado(); return true; } void preorden(NodoArbol p) { if(p!=null) { System.out.println(p.info); preorden(p.izq); preorden(p.der); } } void inorden(NodoArbol p) { if(p!=null) { inorden(p.izq); System.out.println(p.info); inorden(p.der); } } void posorden(NodoArbol p) { if(p!=null) { posorden(p.izq); posorden(p.der); System.out.println(p.info); } } void conteoNodo(NodoArbol p,int A[]) { if(p!=null) { A[0]++; conteoNodo(p.izq,A); conteoNodo(p.der,A); } } void contarNodos() { int A[]=new int[2]; p=raiz; conteoNodo(p,A); System.out.print("El numero de nodos: "+A[0]); } void imprimirInorden() { System.out.println("Impresion de Arbol en InOrden");

p=raiz; inorden(p); } void imprimirPreorden() { System.out.println("Impresion de Arbol en PreOrden"); p=raiz; preorden(p); } void imprimirPosorden() { System.out.println("Impresion de Arbol en PosOrden"); p=raiz; posorden(p); } } class NodoArbol { int info; NodoArbol(int x) { info=x; } NodoArbol izq,der; } public class Arbol { static double SALDO=0; public static void main(String[]args) { int info,opc; ArbolBin A=new ArbolBin(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta En PreOrden","4. Consulta en InOrden","5. Consulta en PosOrden","6. Conteo de Nodos","7.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba info a Borrar: ")); if(!A.adicion(info)) JOptionPane.showMessageDialog(null,"Existe Info");

break; case 2: info=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba info a Adicionar: ")); if(!A.borrar(info)) JOptionPane.showMessageDialog(null,"No Existe Info"); break; case 3: A.imprimirPreorden(); break; case 4: A.imprimirInorden(); break; case 5: A.imprimirPosorden(); break; case 6: A.contarNodos(); break; } } while(opc!=7); System.exit(0); } }