java Lista Doblemente Enlazada con JAVA

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Lista Doblemente Enlazada con JAVA相关的知识,希望对你有一定的参考价值。

import java.util.concurrent.ThreadLocalRandom;

class Helper {

	static int[] lista_generica_valores ( int largo_cadena ) {
		int [] arreglo_base = new int[largo_cadena];
		for ( int n =0; n<largo_cadena;n++ ) {
			arreglo_base[n] = ThreadLocalRandom.current().nextInt(0, 100000 + 1);
		} 
		return arreglo_base;
	}

}
class ListaEnlazadaDoble {

	private NodoDoble ini;
	private NodoDoble fin;

	public ListaEnlazadaDoble (int[] lista) {
		System.out.println("Lista doblemente enlazada");
		System.out.println("=========================");

		this.ini = null;
		this.fin = null;

		for (int n : lista ) {
			NodoDoble nuevoNodo = new NodoDoble( n );

			if (this.ini == null ) {
				this.ini = nuevoNodo;
				this.fin = nuevoNodo;
			} else {
				nuevoNodo.setAnterior(this.fin);
				this.fin.setSiguiente( nuevoNodo );
				this.fin = nuevoNodo;
			}
		}
	}


	public void retornaLista () {
		System.out.println("Recorre lista adelante");
		NodoDoble stepNodo = this.ini;
		while ( stepNodo != null ) {
			System.out.println(stepNodo.getValor() );
			stepNodo = stepNodo.getSiguiente();
		} 
	}

	public void retornaListaReversa () {
		System.out.println("Recorre lista reversa");
		NodoDoble stepNodo = this.fin;
		while ( stepNodo != null ) {
			System.out.println(stepNodo.getValor() );
			stepNodo = stepNodo.getAnterior();
		} 
	}


}

class NodoDoble {
	private int valor;
	private NodoDoble siguiente;
	private NodoDoble anterior;

	public NodoDoble ( int valor ) {
		this.valor = valor;
	} 
	public int getValor () {
		return this.valor;
	}
	public void setSiguiente ( NodoDoble next ) {
		this.siguiente = next;
	}
	public void setAnterior (NodoDoble prev) {
		this.anterior = prev;
	}
	public NodoDoble getSiguiente () {
		return this.siguiente;
	}
	public NodoDoble getAnterior () {
		return this.anterior;
	}

}
class Main {
	public static void main(String[] args) {

		// Arreglo generico
		int[] arreglo_base = Helper.lista_generica_valores(10);

		// Ejecución lista doblemente enlazada
		ListaEnlazadaDoble led = new ListaEnlazadaDoble(arreglo_base);
		led.retornaLista();
		led.retornaListaReversa();

	}
}

以上是关于java Lista Doblemente Enlazada con JAVA的主要内容,如果未能解决你的问题,请参考以下文章

java Lista encadeada implementada em Java

java Métodororponsávelurquebrar uma lista em uma lista de listas de tamanho dadopelopar

java COPIA DE UNA LISTA

java Implementacióndeuna lista enlazada simple con java

java 求在 listA中存在 在listB中不存在的元素

将大列表与Java中的另一个小列表进行比较的最佳方法?