《大话数据结构》----第三章---线性表链式存储结构

一、为啥要单独说线性表的链式存储结构?

    由顺序存储结构的插入和删除操作不方便,引出了链式存储结构。它具有小受固定的存储空间限制,可以比较快捷的插入和删除操作的特点。作者就链式存储结构的不同形式。如单链表、循环链表和双向链表做了讲解,另外还讲了若不使用指针如何处理链表结构的静态链表方法。

    线性表的链式存储结构的特点是用一纵任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用的任意位置。

链式存储结构存在类型:(单链表;静态链表;循环链表;双向链表)

二、这些链式存储结构分别是什么样的?

2.1 单链结构是怎么样的?

单链表正是通过每个结点的指针域将线rt:表的数据元素按其逻辑次序链接在一起,如图3-6-2所示。

把链表中第一个节点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行。  最后一个,当然就意味着直接后继不存在了,所以我们规定,线性链表的最后一个结点指针为“空”(通常用NULL或“砂符号表不,如图3-6-所示)。

有时,我们为了更加方便地对链表进行操作,会在单链表的第一个结点前附设一个结点、称为头结点头结点的指针域存储指向第一个结点的指针。如图3-6-4

2.2 静态链表又是怎么定义的呢?

对于如Basic. Fortran等旱期的编程高级语言,由于没有指针,链表结构按照前面我们的讲法,它就没法实现了。怎么办呢?    有人就想出来用数组代替指针,来描述单链表

静态列表实现:

    总的来说,静态链表其实是为了给没有指针的高级语言设计的一种实现单链表能力的方法。尽管大家不一定会用得上,但这样的思考方式是非常巧妙的,应该理解其思想,以备不时之需。

2.3循环链表是如何定义的?

2.4双向链表是为什么产生的?

猜你喜欢

转载自blog.csdn.net/u010801439/article/details/81161634