Java实现双向链表

2014-11-04 20:15:07 · 作者: · 浏览: 44

  自定异常类:



  Java代码



  public class MyException extends Exception {



  public MyException(){};



  public MyException(String msg){



  super(msg);



  }



  }



  链表结点对像:



  Java代码



  public class Node {



  public Node previou=null;//前结点指针



  public Node next=null; //后结点指针



  public Object value;//结点值



  Node(Object value){



  this.value=value;



  }



  }



  链表对像:



  Java代码



  public class DoubleLinked {



  private Node head;//链表头



  DoubleLinked(){



  }



  /**



  * 判断是否还有下一个结点,没有则为链表的尾结点



  * @param node



  * @return



  */



  public boolean hasNext(Node node){



  if(node.next==null)



  return false;



  return true;



  }


  /**



  * 判断是否有上一个结点,没有则为链表的头结点



  * @param node



  * @return



  */



  public boolean hasPrev(Node node){



  if(node.previou==null)



  return false;



  return true;



  }



  /**



  * 获取链表头元素



  * @return



  * @throws MyException



  */



  public Node getHead() throws MyException{



  if(head==null){



  throw new MyException("链表为空");



  }



  return head;



  }



  /**



  * 获取上一个接点



  * @param node



  * @return



  */



  public Node getPrev(Node node){



  return node.previou;



  }