import java.util.Scanner;
public class ImpLinkedList_D
{
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
DLL objDLL=new DLL();
int val=0;
do
{
System.out.println("Enter Element: Zero(0) is not allowed");
val=scan.nextInt();
Node_d n=new Node_d();
n.val=val;
n.ref_n=null;
//n.ref_p=null;
if(objDLL.start==null)
{
objDLL.start=n;
objDLL.end=objDLL.start;
}
else
{
if(objDLL.end==objDLL.start)
{
n.ref_p=objDLL.start;
//objDLL.end.ref_p=null;
objDLL.end.ref_n=n;
objDLL.end=n;
}
else
{
n.ref_p=objDLL.end;
objDLL.end.ref_n=n;
//objDLL.end.ref_p=objDLL.end;
objDLL.end=n;
}
}
System.out.println("CURRENT LIST \n");
printList(objDLL);
}while(val!=0);
}
public static void printList(DLL objDLL)
{
Node_d itrVar=objDLL.start;
int i=0;
while(itrVar!=null)
{
System.out.println("List Element:-"+i+"\n itrVar.val="+itrVar.val+"\n itrVar.ref_p="+itrVar.ref_p+"\n itrVar.Ref_n="+itrVar.ref_n+"\n");
i++;
itrVar=itrVar.ref_n;
}
}
}
class DLL
{
Node_d start;
Node_d end;
}
class Node_d
{
int val=0;
Node_d ref_n;
Node_d ref_p;
}
public class ImpLinkedList_D
{
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
DLL objDLL=new DLL();
int val=0;
do
{
System.out.println("Enter Element: Zero(0) is not allowed");
val=scan.nextInt();
Node_d n=new Node_d();
n.val=val;
n.ref_n=null;
//n.ref_p=null;
if(objDLL.start==null)
{
objDLL.start=n;
objDLL.end=objDLL.start;
}
else
{
if(objDLL.end==objDLL.start)
{
n.ref_p=objDLL.start;
//objDLL.end.ref_p=null;
objDLL.end.ref_n=n;
objDLL.end=n;
}
else
{
n.ref_p=objDLL.end;
objDLL.end.ref_n=n;
//objDLL.end.ref_p=objDLL.end;
objDLL.end=n;
}
}
System.out.println("CURRENT LIST \n");
printList(objDLL);
}while(val!=0);
}
public static void printList(DLL objDLL)
{
Node_d itrVar=objDLL.start;
int i=0;
while(itrVar!=null)
{
System.out.println("List Element:-"+i+"\n itrVar.val="+itrVar.val+"\n itrVar.ref_p="+itrVar.ref_p+"\n itrVar.Ref_n="+itrVar.ref_n+"\n");
i++;
itrVar=itrVar.ref_n;
}
}
}
class DLL
{
Node_d start;
Node_d end;
}
class Node_d
{
int val=0;
Node_d ref_n;
Node_d ref_p;
}