单链表(java版)

上一篇 / 下一篇  2008-04-30 08:28:25 / 个人分类:数据结构

1.Lnode

package zhangy;

 

public class LinkNode {

      

public Object data;

private LinkNode next;

LinkNode(Object data)

{

       this.data=data;

       }

LinkNode()

{

 

       }

public LinkNode getNext() {

       return next;

}

public void setNext(LinkNode next) {

       this.next = next;

}

public Object getData() {

       return data;

}

public void setData(Object data) {

       this.data = data;

}

 

}

1.  Lnode

 

2.Li

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.LinkList

package zhangy;

 

public class LinkList implements List{

      

       private LinkNode head;

       private LinkNode tail;

       private int size;

      

       LinkList()

       {

             

              head=tail=new LinkNode();

              size=0;

       }

      

       public void insertElement(int i,Object o)throws Exception

       {

              //如果在0位置或者大于size的位置

              if(i<=0||i>size+1)

              {

                     throw new Exception("位置错误");

              }

              LinkNode newnode=new LinkNode(o);

              LinkNode temp=head;

              //如果现在0个元素

              if(head==tail)

              {

                     head.setNext(newnode);

                            tail=newnode;

                    

              }

              //如果插在最后处

              else if(i==size+1)

              {

          tail.setNext(newnode);

          tail=newnode;

                    

              }

             

              //普通情况

              else

              {

              for(int j=1;j<i;j++)

              {

                     temp=temp.getNext();

              }

              newnode.setNext(temp.getNext());

              temp.setNext(newnode);

              }

             

              size++;

             

             

             

       }

      

       public void deleteElement(int i) throws Exception

       {

              if(i<=0||i>size)

              {

                     throw new Exception("位置出错");

              }

             

              if(size==1)

              {

                     head.setNext(null);

                     tail=head;

              }

              else

              {

              LinkNode temp=head;

              for(int j=1;j<=i-1;j++)

              {

                     temp=temp.getNext();

              }

              temp.setNext(temp.getNext().getNext());

              }

              size--;

       }

      

      

 

       public Object getElement(int i) throws Exception

       {

              if(i<1||i>size)

              {

                     throw new Exception("位置错误");

              }

              LinkNode temp=head;

              for(int j=1;j<=i;j++)

              {

                     temp=temp.getNext();

              }

              return temp;

             

             

       }

       public int getSize()

       {

              return size;

       }

      

       public boolean isEmpty()

       {

              if(size==0)return true;

              else return false;

       }

 

}

 

 


TAG:

引用 删除 Guest   /   2008-05-14 17:34:44
3
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-07-20  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 56
  • 日志数: 1007
  • 建立时间: 2008-04-29
  • 更新时间: 2008-05-13

RSS订阅

Open Toolbar