- Desde
- 6 Nov 2013
- Mensajes
- 5
hola acudo a ustedes por que no se que es lo que estoy haciendo mal,tengo este programa que hice en netbeans y es sobre listas circulares como quitarlas,buscar en ellas y como ilo hice insertar un dato en una lista,,no se si es que mi logica esta mal o que pero no me bota ningun error pero cuando lo voy a ejecutar no hace nada,me podrian ayudar ustedes a ver si algo de lo que e hecho tiene algun error o esta mal declarado llevo una semana intentando correr el programa y no pude solo,agradezco cualquier opinion
post data : estoy aprendiendo XD
// en esta parte cargo todas las instrucciones de eliminar,buscar e insertar
package listacircular;
import java.awt.Graphics;
public class lista {
class listacircular{
nodo cab;
listacircular (){
cab= null;
}
public void insertar (int n ){
int contador=0;
nodo nuevo;
nuevo=new nodo(n);
if(cab==null){
nuevo.sig=nuevo;
contador=contador+1;
}
else{
nuevo.sig=cab.sig;
cab.sig=nuevo;
contador=contador+1;
}
cab=nuevo;
}
public void listar(Graphics g){
nodo q=cab;
int col=0;
if(cab==null){
return;
}
do{
g.drawString(""+q.info,15+ col*45,60);
q=q.sig;
col++;
}while(q!=cab);
}
public nodo buscar(int n){
nodo q=cab;
if(cab==null){
return null;
}do{
if(q.info==n)
return q;
q=q.sig;
}while(q!=cab);
return null;
}
public int retirar (nodo p){
nodo q;
if(cab == null){
return -1;
}
if(p == null){
return -1;}
if(cab == cab.sig){
return -1;
}
q=p.sig;
p.sig=q.sig;
if(q==cab)
cab=p;
return 1;
}
}
}
//en esta parte imprimo los datos no se si aqui es donde este el error
package listacircular;
import java.awt.Button;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.TextField;
import javax.swing.JApplet;
public class ListasCir extends JApplet {
int sw;
int numero;
ListaCircular lista =new ListaCircular();
TextField entra = new TextField(4);
TextField retirar = new TextField(4);
Button listar = new Button("Listar");
public ListasCir(){
}
public void init()
{
add(entra);
add(listar);
add(retirar);
entra.requestFocus();
resize(320,240);
}
public void paint (Graphics g)
{
if(sw==1){
lista.insertar(numero);
}if(sw==2){
lista.listar(g);
}
if(sw==3){
nodo p= lista.buscar(numero);
if(p==null)
g.drawString("No existe nodo despues de p", 15, 50);
else {
if(lista.retirar(p) !=-1)
g.drawString("Retirado nodo despues de"+numero,14, 50);
else g.drawString("Nose hizo ningun retiro",15,50);
}
}
}
public boolean action (Event e, Object o){
if(e.target==entra){
String s=entra.getText();
Integer i =new Integer(s);
numero = i.intValue();
entra.setText("");
sw=1;
repaint();
return true;
}
if(e.target==retirar){
String s=retirar.getText();
Integer i = new Integer(s);
numero = i.intValue();
retirar.setText("");
sw=3;
repaint();
return true;
}
if(e.target==listar){
sw=2;
repaint();
return true;
}
return false;
}
}
}
//aqui creo el nodo
package ListaCircular;
public class nodo {
int info;
public nodo (int info){
this.info=info;
}
nodo sig;
}
post data : estoy aprendiendo XD
// en esta parte cargo todas las instrucciones de eliminar,buscar e insertar
package listacircular;
import java.awt.Graphics;
public class lista {
class listacircular{
nodo cab;
listacircular (){
cab= null;
}
public void insertar (int n ){
int contador=0;
nodo nuevo;
nuevo=new nodo(n);
if(cab==null){
nuevo.sig=nuevo;
contador=contador+1;
}
else{
nuevo.sig=cab.sig;
cab.sig=nuevo;
contador=contador+1;
}
cab=nuevo;
}
public void listar(Graphics g){
nodo q=cab;
int col=0;
if(cab==null){
return;
}
do{
g.drawString(""+q.info,15+ col*45,60);
q=q.sig;
col++;
}while(q!=cab);
}
public nodo buscar(int n){
nodo q=cab;
if(cab==null){
return null;
}do{
if(q.info==n)
return q;
q=q.sig;
}while(q!=cab);
return null;
}
public int retirar (nodo p){
nodo q;
if(cab == null){
return -1;
}
if(p == null){
return -1;}
if(cab == cab.sig){
return -1;
}
q=p.sig;
p.sig=q.sig;
if(q==cab)
cab=p;
return 1;
}
}
}
//en esta parte imprimo los datos no se si aqui es donde este el error
package listacircular;
import java.awt.Button;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.TextField;
import javax.swing.JApplet;
public class ListasCir extends JApplet {
int sw;
int numero;
ListaCircular lista =new ListaCircular();
TextField entra = new TextField(4);
TextField retirar = new TextField(4);
Button listar = new Button("Listar");
public ListasCir(){
}
public void init()
{
add(entra);
add(listar);
add(retirar);
entra.requestFocus();
resize(320,240);
}
public void paint (Graphics g)
{
if(sw==1){
lista.insertar(numero);
}if(sw==2){
lista.listar(g);
}
if(sw==3){
nodo p= lista.buscar(numero);
if(p==null)
g.drawString("No existe nodo despues de p", 15, 50);
else {
if(lista.retirar(p) !=-1)
g.drawString("Retirado nodo despues de"+numero,14, 50);
else g.drawString("Nose hizo ningun retiro",15,50);
}
}
}
public boolean action (Event e, Object o){
if(e.target==entra){
String s=entra.getText();
Integer i =new Integer(s);
numero = i.intValue();
entra.setText("");
sw=1;
repaint();
return true;
}
if(e.target==retirar){
String s=retirar.getText();
Integer i = new Integer(s);
numero = i.intValue();
retirar.setText("");
sw=3;
repaint();
return true;
}
if(e.target==listar){
sw=2;
repaint();
return true;
}
return false;
}
}
}
//aqui creo el nodo
package ListaCircular;
public class nodo {
int info;
public nodo (int info){
this.info=info;
}
nodo sig;
}