概述
线性表的定义:
是由一组数据元素组成,线性表或者是一个空表,或者可以写成{a1,a2, …ai, … ,an},其中ai是取自某个集合S的元素。当1<i<n时,数据元素ai-1称为数据元素ai的直接前趋,而称ai+1为ai的直接后继。若一个数据元素由若干个数据项组成,则该数据元素又称为记录,含有大量记录的线性表又称为文件。线性表中元素的个数称为该线性表的长度。
线性结构的特点:
1、数据元素的数据类型一致。
2、数据元素之间的相对位置呈线性关系。
3、存在唯一的一个被称做“第一个”和“最后一个”的数据元素。
4、除第一个和最后一个外,集合中每个数据元素均只有一个前驱和一个后继。
线性表可以进行如下运算:
Initiate(L): 初始化操作,设定一个线性表。
Length(L): 长度的函数,返回元素的个数。
Access(L, i): 访问第i个数据元素。
Insert(L, i, b): 在第i个元素之前,插入元素b。
Delete(L, i): 删除第i个元素。
Merge(L1, L2): 合并L1和L2,合并结果保存在L1中。
Partition(L, L1, L2): 将L拆分成L1和L2。
Search(L, b): 查找满足条件b的数据元素。
Sort(L): 将L中所有数据元素进行排序(降序或者升序)。
Prior(L, elm): 求元素elm的前驱。
Next(L, elm): 求元素elm的后继。
Empty(L): 判空表函数。
Clear(L): 表置空操作。
线性表的存储结构
顺序存储结构
一、顺序存储结构的定义
在计算机中有不同的方法来表示线性表,最普通、最简单的方法是顺序映像或顺序分配,即采用一组连续的存储单元依次存储线性表中各数据元素。
顺序分配的存储结构采用向量结构:设线性表的长度为N,建立一向量V,用V[i]表示第i个分量,第i个分量是线性表第i个元素ai在计算机存储中的映像,即V[i] =ai。
若线性表中的第一个存储元素的地址为LOC[a1],每个元素占用L个存储单元,则表的第i个元素的存储地址为:
LOC[ai]=LOC[a1]+(i-1)*L
LOC[ai]=LOC[ai-1]+L
顺序存储结构的插入操作算法:
1、如果1=<i<=n+1,则插入数据元素x。反之,则退出。
2、从第n到第i个存储单元的数据元素,依次后移,腾出空位i:第n个元素送给第n+1个存储单元,将第n-1个元素送到第n个存储单元,……,直到将第i个元素送给第i+1个存储单元。
3、在空位i处插入元素x,线性表长度加1。
4、返回。
链式存储结构
一、单链表
线形链表:在线形表中每一个元素的值和该表中下一个元素的地址放在一起,这两个部分的信息组成一个结点,若干个这样的结点构成了一个线形链表。
二、循环链表
将单链表的最后一个结点的指针域next指向它的头结点所得的链表。访问结点更加方便。
三、双向链表
若只有一个指针域,指向该结点的后继,如果要找到它的前趋结点,则需要从表头指针出发。为此要作以下扩充:
每个结点包括三个域:一个数据域,两个指针域:一个指向前趋,称为左链域 llink,一个指向后继,称为右链域 rlink。由此形成双向链表。
最后
以上就是友好电脑为你收集整理的线性表简述的全部内容,希望文章能够帮你解决线性表简述所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复