/**
Menu Lista Ordenada
*/
class MenuListaOrd
{
public static void main(String x[])
{
int dato;
ListaOrd Ord;
Ord = new ListaOrd();
int opc;
do
{
System.out.print("\n\n º-º-º Lista Ordenada º-º-º");
System.out.print("\nº-º-º-º-º-º-º-º-º-º-º-º-º-º-º");
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-->");
dato = Teclado.readInt();
Ord.insert_Lista_Ord(dato);
break;
case 2: System.out.print("\n Dato a Eliminar-->");
dato = Teclado.readInt();
Ord.elimina_Nodo(dato);
break;
case 3: Ord.elimina_Toda_Lista();
break;
case 4: System.out.print("\nº-º-º Elementos de la lista º-º-º");
Ord.mostrar_Lista_Ordenada();
break;
default:System.out.print("\nº-º-º G O O D B Y E º-º-º");
}
}
while(opc<=4);
}
}
/*Creacion de una lista simple ordenada con apuntadores
en el primer y ultimo nodo de la lista */
class ListaOrd
{
Nodo primero,ultimo;
//--Constructor
//---------------------------------------------------------------
public ListaOrd()
{
primero = null;
}
// Metodo para insertar un elemento
//---------------------------------------------------------------
public void insert_Lista_Ord(int elem)
{
Nodo nuevo;
nuevo=new Nodo(elem);
if(primero == null)
{
primero = nuevo;
}
else if (elem < primero.dato)
{
nuevo.sig = primero;
primero = nuevo;
ultimo = nuevo;
}
else //busqueda del nodo anterior a partir del que se debe insertar
{
Nodo ant,act;
ant = act = primero;
while((act.sig != null)&&(elem > act.dato))
{
ant = act;
act = act.sig;
}
if(elem > act.dato)//se inserta despues del ultimo nodo
{
ant = act;
nuevo.sig = ant.sig;
ant.sig = nuevo;
}
else if(elem == act.dato)
{
System.out.println("\n¡¡¡ Elemento ya existe !!!");
}
else
{
nuevo.sig = act;
ant.sig = nuevo;
}
}
}
//-- Metodo para eliminar un nodo
//---------------------------------------------------------------
public void elimina_Nodo(int datoE)
{
Nodo ant, act;
act = primero;
ant = null;
if(primero != null)
{
while((act != null)&&(datoE != act.dato))
{
ant = act;
act = act.sig;
}
if((act == null)||(datoE != act.dato))
{
System.out.print("\n¡¡¡ El Dato no existe !!!");
}
else
{
if (act == primero)
{
primero = primero.sig;
act = null;
}
else if (act == ultimo)
{
ultimo = ultimo.sig;
act = null;
}
else
{
if(act != null)
{
ant.sig = act.sig;
act.sig = null;
}
}
}
}
else
{
System.out.print("\n¡¡¡ Lista Vacia !!!");
}
}
//-- Eliminar un toda la lista
//---------------------------------------------------------------
public void elimina_Toda_Lista()
{
Nodo elim,sig;
elim=primero;
while(primero!=null)
{
primero=primero.sig;
elim.sig=null;
elim=primero;
}
}
//Mostrar todos los Elementos
//---------------------------------------------------------------
public void mostrar_Lista_Ordenada()
{
Nodo mostrar;
int nodo;
mostrar = primero;
if(mostrar != null)
{
for(nodo = 0; mostrar != null; mostrar = mostrar.sig)
{
System.out.print("\n Elemento--> "+mostrar.dato);
nodo = nodo ++;
}
}
else
{
System.out.print("\n¡¡¡ Lista vacia !!!");
}
}
//------------------------------------------------------------------------
}
public class Nodo
{
Nodo sig;
int dato;
//Constructor Nodo
public Nodo(int x)
{
dato=x;
sig=null;
}
}
/** 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