数据结构学习笔记——其它链表

原创 2016年01月09日 20:51:48

双向链表

单链表的结点中只有一个指向其后继结点的指针域 next,因此若已知某结点的指针为p,其后继结点的指针则为p->next ,而找其前驱则只能从该链表的头指针开始,顺着各结点的next 域进行,也就是说找后继的时间性能是O(1),找前驱的时间性能是O(n),如果也希望找前驱的时间性能达到O(1),则只能付出空间的代价:每个结点再加一个指向前驱的指针域,结点的结构为如图所示,用这种结点组成的链表称为双向链表。

prior data next
 typedef struct DuLNode
 {
   ElemType data;
   DuLNode *prior,*next;
 }DuLNode,*DuLinkList;

循环链表

  • 最后一个结点的指针域又指回第一个结点的链表。
  • 和单链表的差别仅在于,判别链表中的最后一个结点的条件不再是“后继是否为空”,而是“后继是否为头结点”。
  • 对于单链表只能从头结点开始遍历整个链表,而对于单循环链表则可以从表中任意结点开始遍历整个链表。
  • 有时对链表常做的操作是在表尾、表头进行,此时可以改变一下链表的标识方法,不用头指针而用一个指向尾结点的指针R来标识,这样很容易可以找到表尾结点和头结点,可以使得操作效率得以提高。

双向循环链表

操作特点

  • “查询”和单链表相同。
  • “插入”和“删除”时需要同时修改两个方向上的指针。

静态链表

借助数组来描述线性表的链式存储结构,结点也有数据域data和指针域next,与前面所讲的链表中的指针不同的是,这里的指针是结点的相对地址,也就是数组的下标。

特点

  • 所有数据元素均存储在一个连续的空间段,但是相邻两个元素不一定处于相邻的空间;
  • 修改指针域即可完成插入和删除操作,不需要移动数据元素,但是也不能随机访问静态链表中的元素;
    一次性分配所有存储空间,插入、删除时无需再向操作系统申请或释放空间,但也限制了最大表长。

线性表的静态单链表存储结构

 #define MAXSIZE 100 // 链表的最大长度
 typedef struct
 {
   ElemType data;
   int cur;
 }component,SLinkList[MAXSIZE];

静态链表适用于不支持“指针”的高级语言,或者最大元素数固定但插入、删除操作频繁的链表应用中。有关基于静态链表上的线性表的操作基本与动态链表相同。

版权声明:本文为博主原创文章,未经博主允许不得转载。

1Java学习笔记之数据结构——单链表

数据结构学习,java实现单链表,数据结构单链表

数据结构学习笔记4——单链表的实现

线性表(list)的实现有两种标准方法:顺序表(array based list)和链表(linked list)。顺序表用数组实现,实现方法见上一节;链表用指针动态实现。链表又包括单链表(singl...

数据结构学习笔记——单链表

元素(数据元素的映像)+指针(指示后继元素的存储位置)=结点(表示数据元素)链表就是以“结点的序列”表示线性表。头指针以线性表中第一个数据元素a1a_1的存储地址作为线性表的地址,称作线性表的头指针。...

数据结构与算法学习笔记——链表部分实现(数组形式)

#include #define ElementType unsigned int #define MAX_ELEMENT 10 #define NIL -1 int _L, _...
  • copica
  • copica
  • 2013年10月15日 23:20
  • 510

2Java学习笔记之数据结构——双向链表

java双向链表,双向链表

【数据结构学习笔记】——用链表形式的栈完成汉诺塔

要求使用链表形式的栈完成汉诺塔(8个碟子)移动任务。并且标出每一步移动的动作。算法设计汉诺塔问题利用递归的思想,仅有1个碟子时只需要将它移动一次。若有n个碟子时可以先将n-1个碟子移动到辅助塔上,再将...

数据结构学习笔记——单向链表

单向链表   链表简介:     链表是一种简单的数据结构(单链表、双链表、循环链表),而且是一种线性表,但是其储存数据的方式是非线性的。这样就有区别于数组了,数组储存数据的方式是线性的,既是储...

数据结构学习笔记5——双链表的实现

双链表与单链表的区别就在于:单链表中一个节点只包含指向下一个节点的指针;但是双链表中,一个节点既包含指向下一个节点的指针,又包含指向上一个节点的指针。 双链表的具体实现与文件结构都与单链表相似,只是在...

数据结构学习笔记 —— 链表

单链表Singly Linked Listhead: 指向表头 tail: 指向表尾 size: 记录链表结点(insert/delete是要注意修改)单链表中直接删除最后一个元素必须要遍历链表,...

【算法学习笔记】07.数据结构基础 链表 初步练习

写这篇文章时离学完列表已经很久了 最近真的是很懒。 数据结构这部分在刘汝佳的白书上的部分太少了,我ganj...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构学习笔记——其它链表
举报原因:
原因补充:

(最多只允许输入30个字)