listas enlazadas

23
Listas Simplemente Enlazadas María Luisa Velasco Ramírez

Upload: guestbd36f7

Post on 01-Jul-2015

6.330 views

Category:

Education


13 download

TRANSCRIPT

Page 1: Listas enlazadas

Listas Simplemente Enlazadas

Mariacutea Luisa Velasco Ramiacuterez

Listas Enlazadas

bull Una representacioacuten enlazada de un grupo de elementos de un cierto tipo es una lista enlazada de nodos es decir una

bull secuencia de nodos situados en la memoria dinaacutemica y conectados entre siacute

bull 1048710 Ejemplo lista de enteros 4 8 5 3 2

bull Como se ha visto un nodo tiene dos atributos El dato de tipo geneacuterico (para poder guardar

cualquier tipo de objeto)bull Una referencia al nodo siguiente

bull public class Nodo int dato

bull Nodo siguientebull public Nodo(int dato)

thisdato = dato thissiguiente = null

bull

bull Una lista enlazada requiere como miacutenimo una referencia al primer nodo de la lista

bull Cuando la lista estaacute vaciacutea el atributo primero apunta a null

primero = null

bull public void ListaEnlazada()bull bull primero=nullbull bull public boolean estaVacia()bull bull return primero==nullbull

Operaciones baacutesicas con listas

bull Crear Listabull Recorrido de la Lista bull Insercioacuten de un Elemento bull Borrado de un Elemento bull Buacutesqueda de un Elemento

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 2: Listas enlazadas

Listas Enlazadas

bull Una representacioacuten enlazada de un grupo de elementos de un cierto tipo es una lista enlazada de nodos es decir una

bull secuencia de nodos situados en la memoria dinaacutemica y conectados entre siacute

bull 1048710 Ejemplo lista de enteros 4 8 5 3 2

bull Como se ha visto un nodo tiene dos atributos El dato de tipo geneacuterico (para poder guardar

cualquier tipo de objeto)bull Una referencia al nodo siguiente

bull public class Nodo int dato

bull Nodo siguientebull public Nodo(int dato)

thisdato = dato thissiguiente = null

bull

bull Una lista enlazada requiere como miacutenimo una referencia al primer nodo de la lista

bull Cuando la lista estaacute vaciacutea el atributo primero apunta a null

primero = null

bull public void ListaEnlazada()bull bull primero=nullbull bull public boolean estaVacia()bull bull return primero==nullbull

Operaciones baacutesicas con listas

bull Crear Listabull Recorrido de la Lista bull Insercioacuten de un Elemento bull Borrado de un Elemento bull Buacutesqueda de un Elemento

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 3: Listas enlazadas

bull Como se ha visto un nodo tiene dos atributos El dato de tipo geneacuterico (para poder guardar

cualquier tipo de objeto)bull Una referencia al nodo siguiente

bull public class Nodo int dato

bull Nodo siguientebull public Nodo(int dato)

thisdato = dato thissiguiente = null

bull

bull Una lista enlazada requiere como miacutenimo una referencia al primer nodo de la lista

bull Cuando la lista estaacute vaciacutea el atributo primero apunta a null

primero = null

bull public void ListaEnlazada()bull bull primero=nullbull bull public boolean estaVacia()bull bull return primero==nullbull

Operaciones baacutesicas con listas

bull Crear Listabull Recorrido de la Lista bull Insercioacuten de un Elemento bull Borrado de un Elemento bull Buacutesqueda de un Elemento

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 4: Listas enlazadas

bull public class Nodo int dato

bull Nodo siguientebull public Nodo(int dato)

thisdato = dato thissiguiente = null

bull

bull Una lista enlazada requiere como miacutenimo una referencia al primer nodo de la lista

bull Cuando la lista estaacute vaciacutea el atributo primero apunta a null

primero = null

bull public void ListaEnlazada()bull bull primero=nullbull bull public boolean estaVacia()bull bull return primero==nullbull

Operaciones baacutesicas con listas

bull Crear Listabull Recorrido de la Lista bull Insercioacuten de un Elemento bull Borrado de un Elemento bull Buacutesqueda de un Elemento

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 5: Listas enlazadas

bull Una lista enlazada requiere como miacutenimo una referencia al primer nodo de la lista

bull Cuando la lista estaacute vaciacutea el atributo primero apunta a null

primero = null

bull public void ListaEnlazada()bull bull primero=nullbull bull public boolean estaVacia()bull bull return primero==nullbull

Operaciones baacutesicas con listas

bull Crear Listabull Recorrido de la Lista bull Insercioacuten de un Elemento bull Borrado de un Elemento bull Buacutesqueda de un Elemento

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 6: Listas enlazadas

bull public void ListaEnlazada()bull bull primero=nullbull bull public boolean estaVacia()bull bull return primero==nullbull

Operaciones baacutesicas con listas

bull Crear Listabull Recorrido de la Lista bull Insercioacuten de un Elemento bull Borrado de un Elemento bull Buacutesqueda de un Elemento

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 7: Listas enlazadas

Operaciones baacutesicas con listas

bull Crear Listabull Recorrido de la Lista bull Insercioacuten de un Elemento bull Borrado de un Elemento bull Buacutesqueda de un Elemento

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 8: Listas enlazadas

bull Lo maacutes eficiente es insertar al principio de la lista pues tenemos una referencia al primer nodo

Ejemplo Se quiere insertar el elemento ldquo1rdquo en la siguiente lista

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 9: Listas enlazadas

bull public void insertarPrimero(int dato)bull bull crea un nuevo Nodobull Nodo nuevoNodo = new Nodo(dato)

bull nuevoNodosiguiente=primerobull primero=nuevoNodobull

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 10: Listas enlazadas

bull public void desplegarLista()bull bull Nodo actual=primerobull while (actual= null)bull bull Systemoutprintln(ldquoEl dato esrdquo+actualdato)bull actual= actualsiguientebull

bull

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 11: Listas enlazadas

Coacutedigo para insertar nodos a la derecha

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 12: Listas enlazadas

bull Para insertar nodos a la derecha es necesario declarar e inicializar otra variable en este caso es uacuteltimo

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 13: Listas enlazadas

Coacutedigo ListaEnlazada

Nodo primero Nodo ultimo

primero=nullultimo=null

Declaracioacuten de las variables primero y ultimo

Inicializar primero y ultimo

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 14: Listas enlazadas

public boolean estavacia()return primero==null

public void insertarUltimo (int dato)crea un nuevo nodo

NodoLista nuevoNodo=new NodoLista( dato)

if(primero==null) nuevoNodosiguiente=primero

primero=nuevoNodo ultimo=nuevoNodo

else

nuevoNodosiguiente=null ultimosiguiente=nuevoNodo

ultimo=nuevoNodo

Meacutetodo modificado para que los nodos se inserten a la derecha

nuevoNodosiguiente seraacute igual a null en vez de primeroSe le agrega

una condicion para que inserte a la derecha

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 15: Listas enlazadas

public void desplegarLista()Nodoactual=primerowhile(actual=null)

Systemoutprintln(ldquordquo+actualdato)actual=actualsiguiente

Meacutetodo para imprimir

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 16: Listas enlazadas

doSystemoutprint(Introduce el dato del nodo)Systemoutflush()dato=IntegerparseInt(entradareadLine())

listainsertarUltimo(dato)insertar nodo a la listaSystemoutprint(Deseas seguir insertando datos SI=1 NO=0)Systemoutflush()opc=IntegerparseInt(entradareadLine())

while(opc==1)listadesplegarLista()

Invocacioacuten al meacutetodo insertarUltimo

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 17: Listas enlazadas

De manera graacutefica seriacutea

id dato opc InsertarPrimero(id dato)

1

2

3

4

215

158

124

402

1

1

1

0

215 1

158 2 215 1

124 3 158 2215 1

402 4 124 3 158 2215 1

null

null

null

null

Primero

Primero

Primero

Primero

Ultimo

Ultimo

Ultimo

y Ultimo

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 18: Listas enlazadas

Eliminar nodo

bull public NodoLista eliminarPrimero()bull bull Nodo temp = primerobull primero = primerosiguientebull return tempbull

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 19: Listas enlazadas

Tarea

bull Implementar en Java un menuacute con las siguientes operaciones

bull A) Crear lista enlazadabull B) Insertar a la cabeza de la listabull C) Insertar al final de la listabull D) Borrar el elemento inicial de la listabull E)Borrar el uacuteltimo elemento de la listabull F) Desplegar los elementos de la listabull Deben validar al borrar elementos de la lista que la lista

no este vaciacutea

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 20: Listas enlazadas

bull Escribir un algoritmo que inserte un especiacutefico elemento de la lista

bull Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla en caso de no encontrarlo mandar el mensaje correspondiente

bull Escribir un algoritmo que borre un elemento especiacutefico de la lista Ver ejemplo de la diapositiva siguiente

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 21: Listas enlazadas

Eliminar Nodos

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
Page 22: Listas enlazadas

Listas enlazadas vs Arreglos

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23