java学习经验总结------双向链表的实现


双向链表的建立与单链表类似,只是需要使用pre指针指向前一个结点,并且在删除添加时不仅仅考虑next

package datastructure;

public class DoubleLinkedList {//双向链表的构造使用

	public static void main(String[] args) {
// TODO 自动生成的方法存根
DoubleList dl = new DoubleList();
dl.empty_add("5");
dl.empty_add("3");
dl.empty_add("2");
dl.empty_add("1");
dl.insert(2, "8");
dl.orderprint();
dl.reverseorderprint();
} }
class DoubleList{
public Dlnode first;//头指针
public Dlnode current;//当前结点
private int count=0;//结点个数
public DoubleList() {
// TODO 自动生成的构造函数存根
this.first=new Dlnode(null);
current=first;
first.next=null;
}
public int getCount() {//得到结点个数
return count;
}
public void empty_add(String word) {//由空链表添加结点
Dlnode newnode = new Dlnode(word);
//current=first;
while(current.next!=null)
current=current.next;
current.next=newnode;
newnode.pre=current;
newnode.next=null;
current=current.next;
this.count++; }
public void orderprint() {//按照顺序遍历
Dlnode now; for(now=first.next;now!=null;now=now.next)
System.out.print(now.getWord());
if(now==null)
System.out.println("null");
System.out.println("结点个数为:"+this.getCount()); /*System.out.println(current.getWord());*/
}
public void reverseorderprint() {//按照逆序遍历
while(current!=null)
{
System.out.print(current.getWord());
current=current.pre;
}
System.out.println("结点个数为:"+this.getCount());
}
public void insert(int location,String word) {//在指定地点插入 if(location>count)
System.out.println("已超过结点个数,无法插入!!!");
else {
Dlnode now=first;
while(true) {
if(location==0)
break;
else {
now=now.next;
location--;
}
}
Dlnode temp = new Dlnode(word);
now.pre.next=temp;
temp.pre=now.pre;
now.pre=temp;
temp.next=now;
this.count++; }
}
/*public void delete(int location) {//删除功能留置,与添加类似
if(location>count)
}*/ }
class Dlnode{//链表结点
private String word;
public Dlnode pre;
public Dlnode next;
public Dlnode(String word) {
// TODO 自动生成的构造函数存根
this.word=word;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
} }

Java数据结构--双向链表的实现的更多相关文章

  1. Java数据结构——双向链表

    //================================================= // File Name : DoublyLinked_demo //------------- ...

  2. Java数据结构之线性表

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

  3. Java数据结构和算法 - 链表

    Q: 为什么要引入链表的概念?它是解决什么问题的? A: 数组作为数据存储结构有一定的缺陷,在无序数组中,搜索是低效的:而在有序数组中,插入效率又很低:不管在哪一个数组中删除效率都很低:况且一个数组创 ...

  4. (6)Java数据结构-- 转:JAVA常用数据结构及原理分析

    JAVA常用数据结构及原理分析  http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balab ...

  5. Java简单双向链表实现 @version 1.0

    package com.list; /** * 数据结构和算法Java表示 双向链表 * * @version 1.0 * @author 小明 * */ public class MyDoublel ...

  6. Java数据结构和算法(一)线性结构

    Java数据结构和算法(一)线性结构 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 线性表 是一种逻辑结构,相同数据类型的 ...

  7. 一文掌握关于Java数据结构所有知识点(欢迎一起完善)

    在我们学习Java的时候,很多人会面临我不知道继续学什么或者面试会问什么的尴尬情况(我本人之前就很迷茫).所以,我决定通过这个开源平台来帮助一些有需要的人,通过下面的内容,你会掌握系统的Java学习以 ...

  8. Java数据结构和算法(四)--链表

    日常开发中,数组和集合使用的很多,而数组的无序插入和删除效率都是偏低的,这点在学习ArrayList源码的时候就知道了,因为需要把要 插入索引后面的所以元素全部后移一位. 而本文会详细讲解链表,可以解 ...

  9. Java数据结构之队列的实现以及队列的应用之----简单生产者消费者应用

    Java数据结构之---Queue队列 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在 ...

随机推荐

  1. Ubuntu学习之路1

    最近重装了系统,对自己很久的win7 say goodBye.学习了自制U盘系统盘,重装了win8,然后在win8上倒腾,发现还是不错的.于是又在win8上装回了win7上的VMware,捣鼓了一下U ...

  2. SVN: 在Ecplise管理SVN资源库

    Window->Show View->SVN

  3. Spring AOP源码分析--代理方式的选择

    能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! 年前写了一个面试突击系列的文章,目前只有redis相关的.在这个系列里,我整理了一些面试题与大家 ...

  4. GTMD并查集!

    徐州的A我因为并查集写错T了整场.. int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]); } GTMD!

  5. Ceph 13.2.8 三节点部署

    bs-k8s-ceph eth1 mon osd mgr deploy 2c2g sdb sdc sdd 各20G bs-hk-hk01 eth1 mon osd mgr 2c2g sdb sdc s ...

  6. 使用IDEA详解Spring中依赖注入的类型(上)

    使用IDEA详解Spring中依赖注入的类型(上) 在Spring中实现IoC容器的方法是依赖注入,依赖注入的作用是在使用Spring框架创建对象时动态地将其所依赖的对象(例如属性值)注入Bean组件 ...

  7. 如何查看SparkSQL 生成的抽象语法树?

    前言 在<Spark SQL内核剖析>书中4.3章节,谈到Catalyst体系中生成的抽象语法树的节点都是以Context来结尾,在ANLTR4以及生成的SqlBaseParser解析SQ ...

  8. [redis读书笔记] 第一部分 数据结构与对象 对象类型

    - 从前面redis的基本数据结构来看,可以看出,redis都是在基本结构(string)的基础上,封装了一层统计的结构(SDS),这样让对基本结构的访问能够更快更准确,提高可控制度. - redis ...

  9. vue学习(一)项目搭建

    首先需要配置node和npm,如果没有安装的话,百度一下安装教程. 如果感觉npm下载速度慢,可以使用淘宝镜像cnpm,链接地址: http://npm.taobao.org/ 安装cnpm npm ...

  10. Java TreeMap使用方法

    1.使用默认的TreeMap 构造函数,其中key值需要有比较规则. 2.使用默认的TreeMap 构造函数,Key中添加自定义类型,自定义类型必须继承Comparator. 3.使用比较器类来来实现 ...