public class Lista_Doblemente_Enlazada {
public int dato;
Lista_Doblemente_Enlazada siguiente,anterior;
public Lista_Doblemente_Enlazada(int el){
this(el, null, null);
public Lista_Doblemente_Enlazada(int el,Lista_Doblemente_Enlazada s, Lista_Doblemente_Enlazada
a){
dato=el;
siguiente=s;
anterior=a;
public class DobleNodo {
private Lista_Doblemente_Enlazada inicio, fin;
public DobleNodo(int el){
inicio=fin=null;
public boolean arcBlanco(){
return inicio==null;
public void parteFinal(int el){
if(!arcBlanco()){
fin = new DobleNodo(el, null, fin);
[Link]=fin;
}else{
inicio=fin=new DobleNodo(el);
public void parteInicial(int el){
if(!arcBlanco()){
Inicio = new DobleNodo(el, null, fin);
[Link]=Inicio;
}else{
inicio=fin=new DobleNodo(el);
public void demostrarLista(){
if(!arcBlanco()){
String datos="<=>";
Lista_Doblemente_Enlazada anedada=inicio;
while(anedada!=null){
datos = datos + "["+[Link]+"]<=>";
anedada=[Link];
[Link](null, datos, "MostrandoLista Desde El Inicio al Fin",
JOptionPane.INFORMATION_MESSAGE );
public class Lista {
public static void main(String[] args){
ListaDoble listado=new ListaDoble();
int opcion=0,elemento;
do{
try{
opcion=[Link]([Link](null, "1. Agregar un nodo al Inicio\n"
+ "2. Agregar un nodo al final\n" + "3. Mostrar la lista de inicio a fin\n"
+ "4. Mostrar la lista de fin a inicio\n" + "5. Salir\n" + "Que deseas hacer?","Menu de
Opciones", JOptionPane.INFORMATION_MESSAGE));
}catch(NumberFormatException n){
[Link](null, "Error "+[Link]());
while(opcion!=5);