Metodos en Listas Simples
-
Upload
alejandro-romero -
Category
Documents
-
view
215 -
download
0
Transcript of Metodos en Listas Simples
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 1/10
CÓDIGO EN JAVA:
EJEMPLO LISTAS SIMPLES EN JAVA– ALGORTIMOS
(Inserción, Eliminación, Concatenación, Inversión)
public class Nodo
{
String nombre;
Nodo next;
public Nodo(){
}
public Nodo(String nombre){
this.nombre=nombre;
this.next = null;
}
}
public class Lista
{
Nodo top;
public Lista()
{
top = null;
}
boolean EstaVacia()
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 2/10
{
if(top==null)
return true;
else
return false;
}
void InsertaOrdenada(Nodo temp)
{
if(EstaVacia())
top=temp;
else{
Nodo t1,t2;
t1=top;
t2=top;
if(t1.nombre.compareTo(temp.nombre)>0){ // inserta al inicio
temp.next = top;
top = temp;
}else{
while(t1.nombre.compareTo(temp.nombre)<=0)
{
t2=t1;
t1=t1.next;
if(t1==null)
break;
}
if(t1!=null){ // nodo intermedio
temp.next= t1;
t2.next = temp;
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 3/10
}else{ // al final de la lista
t2.next=temp;
}
}
}
}
void InvierteLista(){
Nodo p,q;
p=top;
q=top;
while(p!=null && q!=null){
q=p.next;
if(q!=null) // no es el último nodo (fin de la lista)
{
p.next=q.next;
q.next=top;
top=q;
Imprime();
}
}
}
void InvierteLista2(){
Nodo p=top, q = null, r;
while (p != null) {
r = q;
q = p;
p = p.next;
q.next = r;
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 4/10
}
top = q;
}
void Imprime(){
Nodo temp;
temp=top;
if(EstaVacia())
System.out.println("La lista está vacía");
else{
while(temp!=null)
{
System.out.print(temp.nombre+" ");
temp=temp.next;
}
System.out.println();
}
}
boolean BorraNodo(String nombreBorrar){
if(EstaVacia())
return false;
else{
if(top.nombre.equals(nombreBorrar)) //borra primer nodo
{ top=top.next;
System.out.println("borró primer nodo");
return true;
}else{ //borra cualquier nodo que no sea el primero
Nodo p,q;
p=top;
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 5/10
q=top;
while((!p.nombre.equals(nombreBorrar)) && p!=null)
{ q=p;
p=p.next;
}
if(p==null) //no encontró el nodo a eliminar
{
return false;
}else
q.next=p.next;
return true;
}
}
}
void InsertaOrdenadaNoRepetidos(Nodo temp)
{
if(EstaVacia())
top=temp;
else{
Nodo t1,t2;
t1=top;
t2=top;
if(t1.nombre.compareTo(temp.nombre)>0){ // inserta al inicio
temp.next = top;
top = temp;
}else{
while(t1.nombre.compareTo(temp.nombre)<=0)
{
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 6/10
if(t1.nombre.compareTo(temp.nombre)==0)
return;
t2=t1;
t1=t1.next;
if(t1==null)
break;
}
if(t1!=null){ // nodo intermedio
temp.next= t1;
t2.next = temp;
}else{ // al final de la lista
t2.next=temp;
}
}
}
}
Lista UnionLista(Lista L2){
Lista L3 = new Lista();
L3 = L2;
Nodo aux = top;
while(aux!=null)
{
L3.InsertaOrdenadaNoRepetidos(aux);
aux = aux.next;
}
return L3;
}
void Ordenar(Lista lista)
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 7/10
{
Nodo aux,temp;
String vaux;
aux=top;
temp=top;
while(aux!=null)
{ temp=aux;
while(temp.next!=null)
{
temp=temp.next;
if(aux.nombre.compareTo(temp.nombre)>0)
{ vaux=aux.nombre;
aux.nombre=temp.nombre;
temp.nombre=vaux;
}
}
aux=aux.next;
}
}
void InsertaFinal(Nodo temp)
{ //Nodo aux;
if(EstaVacia())
top=temp;
else{
Nodo aux=top;
while(aux.next!=null)
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 8/10
aux=aux.next;
aux.next=temp;
}
}
}
import java.util.Scanner;
public class Demo
{
static Scanner entrada = new Scanner(System.in);
public static void main(String[] args)
{
Lista lista1 = new Lista();
Lista lista2 = new Lista();
String palabra="",respuesta="n";
Nodo temp;
/*
do{
System.out.println("Lista 1");
System.out.println("Ingrese una palabra de la lista:");
palabra=entrada.next();
temp = new Nodo(palabra);
lista1.InsertaOrdenada(temp);
System.out.print("LISTA: ");
lista1.Imprime();
System.out.println("Desea ingresar otra palabra s/n");
respuesta=entrada.next();
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 9/10
}while(respuesta.equals("s") || respuesta.equals("S"));
lista1.Imprime();
System.out.println("Ingrese una palabra a eliminar:");
palabra=entrada.next();
if(lista1.BorraNodo(palabra))
System.out.println("Borrado exitoso");
else{
System.out.println("Palabra no encontrada en la lista");
}
lista1.Imprime();*/
do{
System.out.println("Lista 1");
System.out.println("Ingrese una palabra de la lista:");
palabra=entrada.next();
temp = new Nodo(palabra);
lista1.InsertaFinal(temp);
System.out.println("Desea ingresar otra palabra s/n");
respuesta=entrada.next();
}while(respuesta.equals("s") || respuesta.equals("S"));
lista1.Imprime();
lista1.Ordenar(lista1);
lista1.Imprime();
/*
do{
System.out.println("Lista 2");
System.out.println("Ingrese una palabra de la lista:");
palabra=entrada.next();
temp = new Nodo(palabra);
8/3/2019 Metodos en Listas Simples
http://slidepdf.com/reader/full/metodos-en-listas-simples 10/10
lista2.InsertaOrdenadaNoRepetidos(temp);
System.out.println("Desea ingresar otra palabra s/n");
respuesta=entrada.next();
}while(respuesta.equals("s") || respuesta.equals("S"));
*/
//lista2.Imprime();
//Lista lista3 = lista1.UnionLista(lista2);
//lista3.Imprime();
}
}