当前位置:  编程技术>java/j2ee

java数据结构之实现双向链表的示例

    来源: 互联网  发布时间:2014-11-04

    本文导语:  代码如下:/** * 双向链表的实现 * @author Skip * @version 1.0 */public class DoubleNodeList { //节点类 private static class Node{  Node perv;  //前节点  Node next;  //后节点  T data;    //数据  public Node(T t){   this.data = t;  } } private Node h...

代码如下:

/**
 * 双向链表的实现
 * @author Skip
 * @version 1.0
 */
public class DoubleNodeList {
 //节点类
 private static class Node{
  Node perv;  //前节点
  Node next;  //后节点
  T data;    //数据

  public Node(T t){
   this.data = t;
  }
 }
 private Node head;  //头节点
 private Node last;  //尾节点
 private Node other;  //备用节点存放临时操作
 private int length;  //链表长度

 /**
  * 无参构造
  */
 public DoubleNodeList(){
  head = new Node(null);
  last = head;
  length = 0;
 }

 /**
  * 初始化时创建一个节点
  * @param data 数据
  */
 public DoubleNodeList(T data){
  head = new Node(data);
  last = head;
  length = 1;
 }

 /**
  * 添加一个节点
  * @param data 添加的数据
  */
 public void add(T data){
  if(isEmpty()){
   head = new Node(data);
   last = head;
   length++;
  }else{
   //尾插法
   other = new Node(data);
   other.perv = last;
   last.next = other;
   last = other;
   length++;
  }
 }

 /**
  * 在指定数据后插入一个节点
  * @param data 指定的数据
  * @param insertData 插入的数据
  * @return 插入成功返回true,不成功返回false
  */
 public boolean addAfert(T data , T insertData){
  other = head;
  while(other != null){
   if(other.data.equals(data)){
    Node t = new Node(insertData);
    t.perv = other;
    t.next = other.next;
    other.next = t;
    //判断是否在最后一个节点后添加节点
    if(t.next==null){
     last = t;
    }
    length++;
    return true;
   }
   other = other.next;
  }
  return false;
 }

 /**
  * 在指定数据前插入一个节点
  * @param data 指定的数据
  * @param insertData 插入的数据
  * @return 插入成功返回true,不成功返回false
  */
 public boolean addBefore(T data, T insertData){
  other = head;
  while(other != null){
   if(other.data.equals(data)){
    Node t = new Node(insertData);
    t.perv = other.perv;
    t.next = other;
    other.perv.next = t;
    length++;
    return true;
   }
   other = other.next;
  }
  return false;
 }

 /**
  * 获得索引处的数据
  * @param index 索引
  * @return 数据
  */
 public T get(int index){
  if(index>length || index

    
 
 

您可能感兴趣的文章:

  • 数据库 iis7站长之家
  • java 与数据结构
  • 放假了,想用java数据结构,请问大虾们该如何开始?
  • 请教:请问java中存放数据库中的记录,用什么数据结构?(hashtable?vector?还是别的?)
  • 请问哪里有关于JAVA版的数据结构的书当
  • 请教JAVA中的数据结构
  • 求救!!!!关于(数据结构(java版)王国瑜/叶乃菁 编著)
  • 哪里有《数据结构与算法分析(JAVA版)》的电子书下载,谢了:)
  • 请问哪里有《数据结构与算法分析(JAVA版)》的电子书下载????
  • 看过《数据结构与算法》(java版)谈谈一下感想?
  • 那个大侠可以推荐一本关于java的数据结构和算法的书?  
  • JAVA里哪一个数据结构库(hashtable,vector等)支持一对多的关系?
  • 请问:java中有队列(queue)这种数据结构吗?
  • Java结构化数据解析包 Lycia
  • 求助:在java中如何使用象C中struct的数据结构???
  • java数据结构之java实现栈
  • java中如何实现读写类似vc中结构数据?
  • 昨天买了本数据结构(JAVA语言版),大家说说这书怎么样?清华大学出版社,32.00RMB
  • java数据结构和算法学习之汉诺塔示例
  • 使用TCP协议通讯,如果有很多种数据要传输,如:注册信息等,在C++中,我们可以使用结构,java中通常大家又是如何打包的呢?
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • java Servlet实现Session创建存取以及url重写代码示例
  • java 四舍五入使java保留2位小数示例讲解
  • java进行error捕获和处理示例(java异常捕获)
  • java去除集合中重复元素示例分享 java去除重复
  • java读取csv文件示例分享(java解析csv文件)
  • java求三个数的最大值的示例分享
  • java生成字母数字组合的随机数示例 java生成随机数
  • java实现网页解析示例
  • java协变返回类型使用示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Java语言中链表和双向链表
  • java双向循环链表的实现代码
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3