基本数据结构

一、线性表

(1)线性表的数组表示

定义:n个数据元素的有限序列

概念:前驱和后继元素

线性表的顺序:用一组地址连续的存储单元依次存储线性表的数据元素

元素在计算机内的"物理位置相邻"来表示线性表线性表中数据元素之间的逻辑关系;数组来描述顺序存储结构

特点:数组实现的线性表优点在于可以通过下标来访问或者修改元素(元素之间的关系),比较高效;主要缺点在于插入和删除的花费开销较大,比如当在第一个位置前插入一个元素,那么首先要把所有的元素往后移动一个位置;为了提高在任意位置添加或者删除元素的效率,可以采用链式结构来实现线性表(引出下文)

参考:参考Java里面的ArrayList集合类的源码

(2)线性表的链式表示(一得一失)

特点:数据元素之间的逻辑关系由结点中的指针指示,不需要逻辑上相邻的元素物理位置上也相邻

结点组成:数据域(结点中存储的元素)和指针域(指示其后继的信息)

单链表(线性链表):每个结点只包含一个指针域

头指针与头结点的联系与区别?

头指针:指示链表中第一个结点(元素的存储映像)的存储位置;链表中最后一个结点的指针为空"null"

头结点:在第一个结点之前附设的结点,头结点的数据域(存储线性表的长度等附加信息,也可以不写),指针域指向头指针

单链表如何实现"插入"和"删除"操作呢?

为客服:

双向链表:

猜你喜欢

转载自blog.csdn.net/wzj_110/article/details/79843009