c 网站开发引擎,流程图在线制作工具,南京做网站具体需要多少钱,百度大搜概念大合集02 1、线性表及其逻辑结构1.1 线性表的定义1.2 线性表的基本操作 2、线性表的顺序存储结构2.1 顺序表 3、线性表的链式存储3.1 链表3.1.1 头结点#xff08;头指针#xff09;#xff0c;首指针#xff0c;尾指针#xff0c;尾结点3.1.2 单链表3.1.3 双链表3.1.… 概念大合集02 1、线性表及其逻辑结构1.1 线性表的定义1.2 线性表的基本操作 2、线性表的顺序存储结构2.1 顺序表 3、线性表的链式存储3.1 链表3.1.1 头结点头指针首指针尾指针尾结点3.1.2 单链表3.1.3 双链表3.1.4 循环链表3.1.4.1 循环单链表3.1.4.2 循环双链表 4、顺序表与链表的比较 1、线性表及其逻辑结构
1.1 线性表的定义
是具有相同特性的数据元素的一个有限序列(即有限且有序) 一般表示为L (a1,a2,a3,a4,…,an-1,an) 线性表是表示数据元素之间的逻辑结构即不考虑在计算机中的具体实现。
1.2 线性表的基本操作
函数名函数作用InitList(L)初识化线性表构造一个空列表DestroyList(L)销毁线性表释放为线性表L分配的内存空间ListEmpty(L)判断线性表是否为空表若L为空表则返回true否则返回falseListLength(L)输出线性表的长度返回L中元素的个数DisList(L)输出线性表当线性表L不为空时顺序输出L中的个元素值GetElem(L,i,e)按序号求线性表中的元素用e返回L中第i1~n-1个元素值LocateElem(L,e)按元素值查找返回L中的第一个值与e相等的元素的序号ListInsert(L,i,e)插入元素在L的第i个位置插入一个新元素eListDelete(l,i,e)删除元素删除L的第i个元素并用e返回该元素值
注具体的函数表现会在另外的文章里说明本文章只对概念进行阐述
2、线性表的顺序存储结构
2.1 顺序表
线性表的所有元素按照其逻辑顺序依次存储到计算机的一篇连续的存储空间当中即在逻辑结构上面相邻的两个元素在内存空间上也相邻通常把这种结构称为顺序表通常用数组的方式表现。 3、线性表的链式存储
链式存储不需要在逻辑结构上相邻的元素在物理位置上也相邻这是通过指针来实现的
3.1 链表
链表是将线性表中的元素通过指针连接起来的一种表现形式链表中的每个元素称为结点一个结点由数据元素数据域和指向后继结点的指针指针域构成从而实现线性表的链式存储结构。
3.1.1 头结点头指针首指针尾指针尾结点
头结点通常链表都会带上一个头结点来表示唯一标识即头结点的存在是为了区别链表所以头指针里面一般只有指向首结点的指针不会存放链表的第一个元素
首指针指向首节点的指针而首节点用来存放链表的第一个元素
尾指针指向尾结点的指针
尾结点当尾结点的指针域不需要指向任何一个结点时则将其后继指针指向NULL比如单链表和双链表。
3.1.2 单链表
在单链表当中每个结点由一个数据域和一个指针域构成其中头结点不存放元素只存放指向首结点的指针尾结点的指针指向NULL。
3.1.3 双链表
在双链表里面每个结点含有一个数据域和两个指针域一个指向后继结点一个指向前驱结点
3.1.4 循环链表
3.1.4.1 循环单链表
将单链表改为循环单链表的过程是将它的尾结点的next指针域由原来为空改为指向头结点让整个单链表形成一个环。由此从表中任一结点出发均可找到链表中其他结点
3.1.4.2 循环双链表
把双链表改为循环双链表的过程是将它的尾结点的next指针域由原来为空改为指向头结点把头结点的prior指针域改为指向尾结点使整个双链表形成两个环。
4、顺序表与链表的比较
顺序表在完成插入或删除元素这类操作时比较费时
链表在完成插入或删除元素这类操作时只需要修改指针域的指向即可方便省时 注 本文将主要探讨线性表的概念其中提及的各个函数操作已经发布欢迎朋友们继续观看。
本篇文章的相关算法 数据结构大合集02——线性表的相关函数运算算法
上一篇文章 数据结构的概念大合集01含数据结构的基本定义算法及其描述
下一篇文章 数据结构的概念大合集03栈