/* Menu Mlista de la clase ListaCir*/
class MListaCir
{
public static void main(String x[])
{
ListaCir lis;
int dato;
lis= new ListaCir();
int opc;
do
{
System.out.print("\n * * * * MENU * * * * * *");
System.out.print("\n * 1.Insertar nodo *");
System.out.print("\n * 2.Eliminar nodo *");
System.out.print("\n * 3.Eliminar lista *");
System.out.print("\n * 4.Mostrar lista *");
System.out.print("\n * 5.Salir *");
System.out.print("\n * * * * * * * * * * * **");
System.out.print("\n Selecciona una opcion--->");
opc=Teclado.readInt();
switch(opc)
{
case 1: System.out.print("\n Ingrese nuevo Elemento-->");
dato = Teclado.readInt();
lis.insertNodo(dato);
break;
case 2: System.out.print("\n Ingrse dato a Eliminar-->");
dato=Teclado.readInt();
lis.elimNodo(dato);
break;
case 3: lis.elimLista();
System.out.print("\nº-º-º Lista eliminada º-º-º");
break;
case 4: System.out.print("\nº-º-º Elementos de la lista º-º-º");
lis.mostrarLista();
break;
default: System.out.print("\nº-º-º G O O D B Y E º-º-º");
}
}
while(opc<=4);
}
}
/*Creacion de una lista simple enlazada circular */
class ListaCir
{
Nodo primero,ultimo;
public ListaCir()
{
primero = null;
ultimo = null;
}
//-------------------------------------------
// Metodo para insertar un elemento
public void insertNodo(int elem)
{
Nodo nuevo, ant;
nuevo = new Nodo(elem);
if(primero == null) // cuando no hay ningun nodo
{
primero = nuevo;
ultimo = nuevo;
}
else if (nuevo.dato < primero.dato) // al inicio
{
nuevo.sig = primero;
ultimo.sig = nuevo;
primero = nuevo;
}
else //busqueda del nodo anterior a partir del que se debe insertar
{
Nodo act = ant = primero;
while((nuevo.dato > act.dato)&&(act != ultimo))
{
ant = act;
act = act.sig;
}
if(nuevo.dato == act.dato)
{
System.out.println(" ¡¡¡ Elemento existe en la lista !!!");
}
else
{
if(nuevo.dato > act.dato) //se inserta despues del ultimo nodo
{
nuevo.sig = ultimo.sig;
ultimo.sig = nuevo;
ultimo = nuevo;
}
else
{
nuevo.sig = act;
ant.sig = nuevo;
}
}
}
}
//-------------------------------------------
// Metodo para eliminar un nodo
public void elimNodo(int datoE)
{
Nodo ant, act;
ant = null;
act = primero;
if(primero != null)
{
while((act != null)&&(act.dato != datoE))
{
ant = act;
act = act.sig;
}
if((act == null)||(datoE != act.dato))
{
System.out.println("\n ¡¡¡ No existe !!!");
}
else
{
if (act == primero)//caso 1: Elimina Primero
{
primero = primero.sig;
ultimo.sig = primero;
act.sig = null;
}
else if (act == ultimo)//caso 2: elimina ultimo
{
ant.sig = ultimo.sig;
ultimo = ant;
act.sig = null;
}
else // caso 3: elimina en medio
{
ant.sig = act.sig;
act.sig = null;
}
}
}
else
{
System.out.print("\n¡¡¡ No hay Elementos !!!");
}
}
//-------------------------------------------------------------------------------------
//Eliminar un toda la lista
public void elimLista()
{
Nodo elim,sig;
elim = primero;
while(primero != null)
{
primero = primero.sig;
elim.sig = null;
elim = primero;
}
}
//------------------------------------------------------------------
//Mostrar todos los Elementos de la lista ordenada
public void mostrarLista()
{
Nodo mostrar;
mostrar = primero;
if(primero != null)
{
while(mostrar != null)
{
System.out.print("\n Elemento--> "+mostrar.dato);
mostrar = mostrar.sig;
}
}
else
{
System.out.print("\n¡¡¡ Lista vacia !!!");
}
}
//------------------------------------------------------------------------
}
/* Clase Nodo */
public class Nodo
{
Nodo sig;
int dato;
//Constructor Nodo
public Nodo(int elem)
{
dato=elem;
sig=sig;
}
}
/** Programa que dice si un numero ingresado es Cuadrado Perfecto Autor: **/ class CuadPerF { public static void main(String arr[]) { int num; double sum,r; System.out.print("\n Ingrese Numero:"); num = Teclado.readInt(); sum = Math.sqrt(num); r = sum; if(r%2 ==0) { ...
Comentarios
Publicar un comentario