快速业务通道

Java中实现链表和双向链表 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
{    Node e=new Node(d);    if(Length==0)    {     Tail=e;     Head=e;    }    else    {     Node temp=cursor();     e.next=temp;     if(Pointer==null)      Head=e;     else      Pointer.next=e;    }    Length++;   }   public int size()   /*返回链表的大小*/   {    return (Length);   }   public Object remove()   /*将当前结点移出链表,下一个结点成为当前结点,如果移出的结点是最后一个结点,则第一个结点成为当前结点*/   {    Object temp;    if(Length==0)     throw new java.util.NoSuchElementException();    else if(Length==1)    {     temp=Head.data;     deleteAll();    }    else    {     Node cur=cursor();     temp=cur.data;     if(cur==Head)      Head=cur.next;     else if(cur==Tail)     {      Pointer.next=null;      Tail=Pointer;      reset();     }     else      Pointer.next=cur.next;      Length--;    }    return temp;   }   private Node cursor()   /*返回当前结点的指针*/   {    if(Head==null)     throw new java.lang.NullPointerException();    else if(Pointer==null)     return Head;    else     return Pointer.next;   }   public static void main(String[] args)   /*链表的简单应用举例*/   {    List a=new List ();    for(int i=1;i<=10;i++)     a.insert(new Integer(i));     System.out.println(a.currentNode());     while(!a.isEnd())      System.out.println(a.nextNode());      a.reset();      while(!a.isEnd())      {       a.remove();      }      a.remove();      a.reset();      if(a.isEmpty())       System.out.println("There is no Node in List\n");       System.in.println("You can press return to quit\n");      try      {       System.in.read();       //确保用户看清程序运行结果---www.bianceng.cn      }      catch(IOException e)      {}     }    }    class Node    /*构成链表的结点定义*/    {     Object data;     Node next;     Node(Object d)     {      data=d;      next=null;     }    }

读者还可以根据实际需要定义新的方法来对链表进行操作。双向链表可以用类似的方法实现只是结点的类增加了一个指向前趋结点的指针。

可以用这样的代码来实现:

class Node {   Object data;   Node next;   Node previous;   Node(Object d)   {    data=d;    next=null;    previous=null;   } }

当然,双向链表基本操作的实现略有不同。链表和双向链表的实现方法,也可以用在堆栈和队列的实现中,这里就不再多写了,有兴趣的读者可以将List类的代码稍加改动即可。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号