`
firesaijj
  • 浏览: 8973 次
  • 性别: Icon_minigender_1
  • 来自: 四川
最近访客 更多访客>>
社区版块
存档分类
最新评论

数据结构学习---线性表的链式存储实现(双向链表)

 
阅读更多
  单链表的优点是结构简单,但是单链表只能通过一个节点房后其后续节点,无法直接访问其前驱结点,要在单恋保重找到某个节点,必须从链表的首节点出发,依次向后寻找。为此在单链表的基础上进行扩展,使得不但能够访问其后续节点,也可访问前驱结点。做法为在单链表节点上增加一个域,指向节点直接前驱结点。双链表节点结构图,如图:

   与但电力报节点定义类似,双向链表的节点定义通过实现节点完成。
代码
package taxus.list;


public class DLNode implements Node {
	
	private Object element;
	
	private DLNode pre;
	
	private DLNode next;
	
	public DLNode(){
		this(null, null, null);
	}

	public DLNode(Object ele, DLNode pre, DLNode next) {
		this.element = ele;
		this.pre = pre;
		this.next = next;
	}
	
	public DLNode getPre() {
		return pre;
	}

	public void setPre(DLNode pre) {
		this.pre = pre;
	}

	public DLNode getNext() {
		return next;
	}

	public void setNext(DLNode next) {
		this.next = next;
	}

	public Object getData() {
		return element;
	}

	public void setData(Object obj) {
		this.element = obj;
	}

}

双向链表结构图


  双向链表查找不仅可以从链表头开始,也可以从链表尾节点开始,不过需要的时间和单向链表一样,需要n/2。单链表中节点的插入操作除了首节点之外必须在某个已知节点后面,而双链表插入在已知节点前后都可以进行。在删除操作中,单链表除了首节点之外必须知道待删除节点的前驱结点,而双链表中在已知某个节点引用的前提下,可以完成删除自身的操作。
  • 大小: 11.9 KB
  • 大小: 4.1 KB
0
0
分享到:
评论

相关推荐

    数据结构——线性表(选择题).docx

    简单,线性表的链式存储原理,02702004 [单选题] A、必须是连续的 B、一定是不连续的 C、部分地址必须是连续的 D、连续与否均可以(正确答案) 数据结构——线性表(选择题)全文共11页,当前为第1页。 数据结构——...

    精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!

    \数据结构flash演示\版本2\2.3 线性表的链式表示和实现-双向循环链表中左边插入节点.swf \数据结构flash演示\版本2\2.3 线性表的链式表示和实现-表头插入节点.swf \数据结构flash演示\版本2\2.3 线性表的链式表示...

    数据结构课时安排.txt

    掌握线性表的顺序表示及实现和链式表示及实现(单链表、双向链表和循环链表); 3. 算法设计(层次3):熟练掌握线性表在顺序存储结构和链式存储结构下的创建、插入、删除和查找等基本操作;链表合并与分解;有序表...

    C语言版数据结构与算法分析-严蔚敏经典视频教程

    01-001数据结构的概念和基本术语、抽象数据类型的表示与实现 01-002算法设计的要求、算法效率的度量 02-001线性表的类型定义 02-002线性表的顺序表示与实现、线性表的基本操作 02-003单链表的创建与操作、加工型...

    软件工程之专题九:数据结构知识

    学习数据结构目的是要熟悉一些最常用的数据结构,明确数据结构内在的逻辑关系,知道它们在计算机中的存储表示,并结合各种典型应用说明它们在进行各种操作时的动态性质及实际的执行算法,进一步提高软件计和编程水平...

    数据结构教程C语言版

    word版本的数据结构教程 第一课:数据结构的基本概念和术语  第二课:抽象数据类型的表示与实现 ... 第九课:循环链表与双向链表  第十课:栈的表示与实现  第十一课:栈的应用  第十二课:实验二 循环链表实验

    数据结构.chm 数据结构讲义

    2、3、3 双向链表 2、4、0 一元多项式的表示及相加 3、0、0 栈和队列 3、1、0 栈 3、1、1 抽象数据类型栈的定义 3、1、2 栈的表示和实现 3、2、0 栈的应用举例 3、2、1 数制转换 3、2、2 括号匹配的检验

    数据结构与算法综合资料库

    第一课:数据结构的基本概念和术语 第二课:抽象数据类型的表示与实现 第三课:算法及算法设计要求 第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:...

    数据结构与算法综合资料库 (chm)

    数十余种算法和一个数据结构教程 第一课:数据结构的基本概念和术语 第二课:抽象数据类型的表示与实现 ...第九课:循环链表与双向链表 ............ 第三十九课:索引文件 第四十课:总复习

    数据结构(C++)有关练习题

    <br>实验二 单链表结构及计算 实验目的: 通过实验掌握下列知识: 1、熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现; 2、继续熟悉VC编程、编译和调试环境; 内容及步骤:...

    852数据结构.txt

    (3) 线性表的链式存储方法和实现,相关查找、插入和删除算法算法实现,同时要注意链表中的头结点、头指针和首元结点的区别及循环链表、双向链表的特点。 (4) 从时间和空间复杂度的角度比较两种存储结构的不同特点...

    《数据结构》实验

    要求:熟练掌握线性表的循环链式和双链式链接存储结构及在其上实现线性表的各种基本运算的方法。 栈和队列 时数 2 性质 验证 内容:1、设单链表中存放着n个字符,设计算法,判断该字符串中是否有中心对称关系。例如...

    严蔚敏:数据结构题集(C语言版)

    《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参考教材。本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    3.5.4 字符数据在内存中的存储形式及使用方法 41 3.5.5 字符串常量 41 3.5.6 符号常量 42 3.6 变量赋初值 42 3.7 各类数值型数据之间的混合运算 43 3.8 算术运算符和算术表达式 44 3.8.1 C运算符简介 44 3.8.2 算术...

    数据结构辅导讲义

    3. 单链表——线性表的链式存储结构之一 10 4. 循环链表 15 5. 双向循环链表 15 6. 顺序表与单链表的比较 16 二、 习题 16 第3章 栈和队列 17 一、 基础知识和算法 17 1. 栈 17 2. 链栈 17 3. 顺序栈 18 4. 队列 19 ...

    数据结构的基本概念和术语抽象数据类型的表示与实现算法及算法设计要求第四课:算法效率的度量和存储空间需求

    第一课:数据结构的基本概念和术语 第二课:抽象数据类型的表示与实现 第三课: 第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:实验一 线性表的...

    严蔚敏 数据结构(C语言版) 代码 23490 书中算法

    2.3.4 双向链表 32 2.4 线性表的应用 34 2.4.1 一般线性表的合并 34 2.4.2 有序表的合并 35 2.4.3 一元多项式的表示及相加 37 2.5 小结 40 习题 41 第3章 栈和队列 44 3.1 栈 44 3.1.1 栈的类型...

    线性表基础

    线性表基础,了解线性表的定义。 掌握线性表的顺序存储结构、链式存储结构以及相关的基本操作算法描述。 了解双向链表存储结构

    《数据结构 1800题》

    12. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。( ) 【华南理工大学 2002 一、5(1分)】 13. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. ( ) ...

    数据结构教程(共四十课)

    第一课:数据结构的基本概念和术语 第二课:抽象数据类型的表示与实现 第三课:算法及算法设计要求 第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:...

Global site tag (gtag.js) - Google Analytics