Metodos Basicos
*/
package listacircular;
import java.util.Scanner;
import javax.swing.JOptionPane;
class Nodo
{
public int info;
public Nodo enlace;
public Nodo(){}
}
class Lista
{
Nodo cab=null;//declaración del nodo
void InsertarNodo(int n) //inserción por delante
{ if(cab==null) //entra la primera vez
{
cab = new Nodo(); //crea el nodo cab
cab.info=n;
cab.enlace=cab; //su primer enlace apunta a cabezera
}
else
{ Nodo aux=cab;
Nodo temp=new Nodo(); //nodo temporal
temp.info=n;
while(aux.enlace!=cab)
{
aux=aux.enlace;
}
aux.enlace=temp;
temp.enlace=cab;
}
}
void mostrarLista()
{
Nodo temp=cab;
do
{
System.out.println("\t"+temp.info);
temp=temp.enlace;
}while(temp != cab); //recorre hasta llegar a cabezera
}
void Eliminar(int i)
{
Nodo aux=cab;
Nodo temp= null;
Nodo aux2 = null;
while(aux.info != i && aux.enlace !=cab)
{
aux =aux.enlace;
if(temp==null)
temp=cab;
else
temp=temp.enlace;
}
if(temp==null)
{
if(cab.enlace != cab)
{
aux2=cab;
while(aux2.enlace!=cab)
aux2=aux2.enlace;
cab=cab.enlace;
aux2.enlace=cab;
}
else
cab=null;
}
if(temp!=null)
{
if(aux.info != i )
System.out.println("no encontrado");
else
{
temp.enlace=aux.enlace;
System.out.println("encontrado");
}
}
/* else
temp.enlace = aux.enlace;
if(aux.info != i)
System.out.print("Valor no Encontrado...\n");
else
System.out.println("Valor Eliminado: "+aux.info+"\n");*/
}
void contar()
{
int contar=0;
Nodo temp=cab;
do
{
contar++;
temp=temp.enlace;
}while(temp!=cab);
System.out.println("la cantidad de Nodos es: "+contar);
}
void promedio()
{
int contar=0,pro=0;
Nodo temp=cab;
do
{
contar++;
temp=temp.enlace;
pro+=temp.info;
}while(temp!=cab);
System.out.println("el promedio de los nodos es: "+(pro/contar));
}
void insertarordenado(int n)
{
if(cab==null) //entra la primera vez
{
cab = new Nodo(); //crea el nodo cab
cab.info=n;
cab.enlace=null; //su primer enlace apunta a null
}
else {
Nodo temp=new Nodo(); //nodo temporal
temp.info=n;
//temp.enlace=cab;
//ab=temp;
if(n>cab.info)
{
temp.enlace=cab;
cab=temp;
}
else
{
Nodo aux=cab;
while(aux.enlace!=null && n<aux.enlace.info)
{
aux=aux.enlace;
}
temp.enlace=aux.enlace;
aux.enlace=temp;
}
}
}
}
class Persona {
public String nombre;
public int edad;
public double salario;
public float peso;
public Persona(String n1,int edad1,double sueldo, float masa)//constructor parametrizado
{
nombre = n1;
edad = edad1;
salario = sueldo;
peso = masa;
}
public Persona(){nombre = "pablo"; edad = 18;salario = 633000; peso = 75;}
public void put_datos()
{
nombre = JOptionPane.showInputDialog("Ingrese Nombre: ");
String aux = JOptionPane.showInputDialog("Ingrese edad: ");
edad = Integer.parseInt(aux);
String sal = JOptionPane.showInputDialog("Ingrese Salario: ");
salario = Integer.parseInt(sal);
String aux1 = JOptionPane.showInputDialog("Ingrese peso: ");
peso = Integer.parseInt(aux1);
}
public void get_datos()
{
JOptionPane.showMessageDialog(null,"nombre: "+nombre+"\n"+"edad: "+edad+"\n"+"salario: "+salario+"\n"+"peso: "+peso+" Kg");
}
}
public class ListaCircular
{
public static void main(String[] args)
{
Lista A=new Lista();
Persona p = new Persona();
p.put_datos();
p.get_datos();
/* int num=0,opc=0;
do
{
System.out.print("\nIngrese Nodo Nuevo: ");
Scanner s2 = new Scanner(System.in);
num=s2.nextInt();
A.InsertarNodo(num);
System.out.print("\nPresiona 1(uno) si Desea Ingresar un Nuevo Nodo. \nPresiona 0(cero) para Salir.\nSu Eleccion es: ");
Scanner s1 = new Scanner(System.in);
opc= s1.nextInt();
}while(opc!=0);
*/
A.InsertarNodo(4);
A.InsertarNodo(7);
A.InsertarNodo(3);
//A.InsertarNodo(4);
A.mostrarLista();
System.out.print("---------------\n");
// A.Eliminar(4);
A.mostrarLista();
A.contar();
}
}
No hay comentarios:
Publicar un comentario