LinkedList

 1 public class LinkedList {
 2     
 3     private Node header=null;
 4     private Node tail=null;
 5     
 6     /**
 7      * @param data
 8      */
 9     public void add(int data){
10         if(header==null){
11             Node newnode=new Node();
12             newnode.setData(data);
13             newnode.setNext(null);
14             header=newnode;
15             tail=newnode;
16         }
17         else{
18             Node newnode=new Node();
19             newnode.setData(data);
20             newnode.setNext(null);
21             tail.setNext(newnode);
22             tail=tail.next;
23         }
24     }
25     
26     public void delete(int data){
27         Node temp=header;
28         if(temp.getNext()!=null){
29             while(temp.getNext().getData()!=data){
30                 temp=temp.getNext();
31             }
32             temp.setNext(temp.getNext().getNext());
33         }
34     }
35     
36     public void traverse(){
37         Node temp=header;
38         while(temp.getNext()!=null){
39             temp=temp.getNext();
40             System.out.print(temp.getData()+" ");
41         }
42         System.out.println();
43     }
44     
45     public void reverse(){
46         Node head=header.getNext();
47         if(head != null){
48             Node prev=head;
49             Node current=prev.getNext();
50             while(current.getNext()!=null){
51                 Node next=current.getNext();
52                 current.setNext(prev);
53                 prev=current;
54                 current=next;
55             }
56             Node temp=this.header;
57             temp.setNext(current);
58             current.setNext(prev);
59             head.setNext(null);
60         }
61         
62     }
63     
64     
65     private class Node{
66         int data;
67         Node next;
68         public Node(){
69             data=0;
70             next=null;
71         }
72         public int getData(){
73             return data;
74         }
75         public void setData(int data){
76             this.data=data;
77         }
78         public Node getNext(){
79             return next;
80         }
81         public void setNext(Node next){
82             this.next=next;
83         }
84     }
85     
86     public static void main(String[] args) {
87         LinkedList linkList=new LinkedList();
88         for(int i=0;i<10;i++){
89             linkList.add(i);
90         }
91         linkList.traverse();
92         linkList.delete(5);
93         linkList.traverse();
94         linkList.reverse();
95         linkList.traverse();
96         
97     }
98 
99 }

 

posted on 2013-04-03 14:48  melotang  阅读(164)  评论(0)    收藏  举报