Você está na página 1de 6

Ingenieríía de Sistemas – UNSCH

Estructura de datos IS241


LABORATORIO 04-05
APELLIDOS Y NOMBRES…………………………………………………………….
CÓDIGO ……………………………………………………NOTA …………………..

Listas Enlazadas

Es un conjunto de nodos enlazados con una determina estructuras de acuerdo a la


clasificación del listas.

Listas Simples:
Son un conjunto de nodos enlazados con el siguiente nodo, tiene como característica
que último nodo de la lista está apuntando al vacio o null.
Llene comentarios en las líneas de código indicados
Implementación
package ListasSimples;
public class Nodo<Tipo> {
private Tipo dato;
private Nodo siguiente;

public Nodo(Tipo dato) { //


this.dato=dato;
siguiente=null;
}

public Tipo getDato() { //

return dato;
}
public void setDato(Tipo dato) {//

this.dato = dato;
}

public Nodo getSiguiente() {//

return siguiente;
}
public void setSiguiente(Nodo siguiente) {//

this.siguiente = siguiente;
}
}

package ListasSimples;

public class Lista <Tipo> {


Nodo primero;

Ing. Jennifer Rocíío Pillaca De La Cruz Paí gina 1


Semestre 2017-I
Ingenieríía de Sistemas – UNSCH
Estructura de datos IS241
public Lista() {
primero=null;
}
public Lista insertar(Tipo x){ //

Nodo nuevo=new Nodo(x);


if (primero!=null )
nuevo.setSiguiente(primero);
primero=nuevo;
return this;
}
public String toStream(){
String salida="";
Nodo actual;

for(actual=primero; actual!=null; actual=actual.getSiguiente() )


salida=salida+actual.getDato();
return salida;
}
public Lista Eliminar(){//

Nodo actual=primero;
if (primero!=null ){
primero=actual.getSiguiente();
actual.setSiguiente(null);}
return this;

}
}

Listas Dobles:
Son un conjunto de nodos enlazados por los dos extremos, está compuesto por nodos
que tienen dos atributos que tiene la referencia del nodo anterior y del nodo siguiente.
package ListasDobles;
Complete código
public class NodoD<Tipo> {
……

public NodoD(Tipo dato) {


…..

Cemente la líneas de código


package ListasDobles;

public class ListaD <Tipo>{


Ing. Jennifer Rocíío Pillaca De La Cruz Paí gina 2
Semestre 2017-I
Ingenieríía de Sistemas – UNSCH
Estructura de datos IS241
NodoD primero;

public ListaD() {
primero=null;
}
public ListaD insertar(Tipo x){ //
NodoD nuevo=new NodoD(x);
if (primero!=null ){
primero.setAnterior(nuevo);
nuevo.setSiguiente(primero);
}

primero=nuevo;
return this;
}
public ListaD Eliminar(){//
NodoD actual=primero;
if (primero!=null ){
primero=actual.getSiguiente();
primero.setAnterior(null);
actual.setSiguiente(null);
}

return this;
}
public String toStream(){//
String salida="";
NodoD actual;

for(actual=primero; actual!=null; actual=actual.getSiguiente() )


salida=salida+actual.getDato();
return salida;
}
}

Complete código
public ListaD insertarFinal(Tipo x){ //
NodoD nuevo=new NodoD(x);
…………

return this;
}

public ListaD EliminarFinal(){


NodoD actual=primero;
………….

return this;
}

Ing. Jennifer Rocíío Pillaca De La Cruz Paí gina 3


Semestre 2017-I
Ingenieríía de Sistemas – UNSCH
Estructura de datos IS241

Listas Circulares:
Es una lista enlazada donde no hay final.
Comente líneas de código

package ListasCirculares;

public class NodoC <Tipo>{


private Tipo dato;
private NodoC siguiente;

public NodoC(Tipo dato) { //


this.dato = dato;
siguiente=this;
}

public Tipo getDato() {


return dato;
}

public void setDato(Tipo dato) {//


this.dato = dato;
}

public NodoC getSiguiente() {


return siguiente;
}
public void setSiguiente(NodoC siguiente) {
this.siguiente = siguiente;
}

}
Complete código
package ListasCirculares;

public class ListaC<Tipo> {


NodoC<Tipo>primero;

public ListaC() {
primero=null;
}
public ListaC insertar(Tipo x){

Ing. Jennifer Rocíío Pillaca De La Cruz Paí gina 4


Semestre 2017-I
Ingenieríía de Sistemas – UNSCH
Estructura de datos IS241
NodoC nuevo=new NodoC(x);
NodoC actual=primero;
if (primero!=null){
do
actual=actual.getSiguiente();
while(actual.getSiguiente()!=primero);
nuevo.setSiguiente(primero);
actual.setSiguiente(nuevo);
}

primero=nuevo;
return this;
}

public ListaC Eliminar(){

NodoC fin=primero;
NodoC actual=primero;
if (primero!=null){
do
fin=fin.getSiguiente();
while(fin.getSiguiente()!=primero);
if(primero!=fin){
fin.setSiguiente(actual.getSiguiente());
primero=actual.getSiguiente();
actual.setSiguiente(actual);
}
}
return this;
}
public String toStream(){
String salida="";
NodoC actual=primero;
while(actual!=primero)
{
salida=salida+actual.getDato();
actual=actual.getSiguiente();
}

return salida;
}
public ListaC insertarFinal(Tipo x){

NodoC nuevo=new NodoC(x);


NodoC actual=primero;
……
return this;
}

Ing. Jennifer Rocíío Pillaca De La Cruz Paí gina 5


Semestre 2017-I
Ingenieríía de Sistemas – UNSCH
Estructura de datos IS241

public ListaC EliminarFinal(){

NodoC fin=primero;
NodoC actual=primero;
………
return this;
}

Listas Circulares Dobles

Son Listas enlazadas que no tienen final y que están enlazados por los dos extremos

Implemente la LDC

Ing. Jennifer Rocíío Pillaca De La Cruz Paí gina 6


Semestre 2017-I

Você também pode gostar