Metodos en Listas Simples

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()

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();

}

}