1 ***********IntDllNode.java*******************
2 public class IntDllNode {
3 public IntDllNode next,prve;
4 public int value;
5 public IntDllNode(int e){
6 value=e;
7 next=prve=null;
8 }
9 public IntDllNode(int e,IntDllNode n1,IntDllNode n2){
10 this.value=e;
11 next=n1;
12 prve=n2;
13 }
14 }
15
16 *************IntDllList.java********************
17
18
19 public class IntDllList {
20
21 /**
22 * @param args
23 */
24 IntDllNode head,tail;
25 // 构造函数
26 public IntDllList(){
27 head=tail=null;
28 }
29 //判断是否为空
30 public boolean isEmpty(){
31 return (head==null);
32 }
33 //从头部插入新节点
34 public void addToHead(int e){
35 if(head==null){
36 head=tail=new IntDllNode(e);
37 }
38 else{
39 IntDllNode temp=new IntDllNode(e,head,null);
40 head.prve=temp;
41 head=temp;
42 }
43 }
44 //从尾部插入新节点
45 public void addToTail(int e){
46 if(tail==null){
47 head=tail=new IntDllNode(e);
48 }
49 else{
50 IntDllNode temp=new IntDllNode(e);
51 temp.prve=tail;
52 tail.next=temp;
53 tail=temp;
54 }
55 }
56 //从头部删除一个节点
57 public int deleteFromHead(){
58 int result;
59 if(isEmpty()){
60 System.out.println("The list is empty");
61 return -1;
62 }
63 if(head==tail){
64 result=head.value;
65 head=tail=null;
66 return result;
67 }
68 else{
69 result=head.value;
70 head=head.next;
71 head.prve=null;
72 return result;
73 }
74 }
75 //从尾部删除一个节点
76 public int deleteFromTail(){
77 int result;
78 if(isEmpty()){
79 System.out.println("The list is empty");
80 return -1;
81 }
82 if(head==tail){
83 result=tail.value;
84 head=tail=null;
85 return result;
86 }
87 else{
88 result=tail.value;
89 tail=tail.prve;
90 tail.next=null;
91 return result;
92 }
93 }
94 //正向打印整个链表
95 public void printAll(){
96 if(isEmpty()){
97 System.out.println("The list is empty");
98 return ;
99 }
100 IntDllNode temp=head;
101 while(temp!=null){
102 System.out.println(temp.value);
103 temp=temp.next;
104 }
105 }
106 //反向打印整个链表
107 public void printAllreverse(){
108 if(isEmpty()){
109 System.out.println("The list is empty");
110 return ;
111 }
112 IntDllNode temp=tail;
113 while(temp!=null){
114 System.out.println(temp.value);
115 temp=temp.prve;
116 }
117 }
118
119 public static void main(String[] args) {
120 // TODO Auto-generated method stub
121 IntDllList list=new IntDllList();
122 list.addToHead(1);
123 list.addToHead(2);
124 list.addToHead(3);
125 list.addToHead(4);
126 list.addToHead(5);
127 list.addToTail(6);
128 list.addToTail(7);
129 list.addToTail(8);
130 list.addToTail(9);
131 list.addToTail(0);
132 list.printAll();
133 System.out.println("**");
134 list.printAllreverse();
135 }
136
137 }