做的网站怎么转成网址链接,企业为什么要找会计,oa办公系统都有哪家,河南快速网站备案线性表#xff1a;包含若干数据元素的一个线性序列#xff0c;特征如下#xff1a; 1#xff09;对非空表#xff0c;a0是表头#xff0c;无前驱#xff1b; 2#xff09;an-1是表尾#xff0c;无后继#xff1b; 3#xff09;其他元素仅且仅有一个前驱#xff0c;…线性表包含若干数据元素的一个线性序列特征如下 1对非空表a0是表头无前驱 2an-1是表尾无后继 3其他元素仅且仅有一个前驱一个后继 线性表L可以用二元组表示 L(D,R)
即线性表L包含数据元素集合D和关系集合R 顺序存储特点 1逻辑上相邻的元素其存储位置也相邻 2对数据元素ai的存取为随机存取或按位置存取 3存储密度高 存储密度(数据元素所占空间)/(整个数据结构所占用空间)
顺序存储缺点 1数据插入和删除等运算的时间复杂度较差
顺序存储结构的表示 通常使用数组 上图为顺序表的通常定义typedef int data_t中data_t是表中元素使用typedef是为了能够使得data_t可以更换数据类型下面的typedef struct是顺序表其中data_t data[N]是数据int last是最后一个元素下标。 线性表的基本运算 1建立一个空表list_creat(L) 2置空表list_clear(L) 3判断表是否为空list_empty(L)。若表为空返回值为1否则返回0 4求表长liength(L) 5取表中某个元素GetList(L,i),即ai。要求0≤i≤length(L)-1 6定位运算locate(L,x)。确定元素x在表L中的位置或序号 7插入 Insert(L,x,i)。将元素x插入到表L中第i个元素ai之气且表长1 8删除 Delete(L,i)。删除表L中i个元素ai且表长减1要求0≤i≤n-1。 线性表的顺序存储缺点 顺序表实现
sqlist.h sqlist.c test.c sqlist.h数据结构定义、运算 sqlist.c运算实现 test.c整个实现
list_create 1申请内存 2成员初始化 3返回线性表地址
给大片内存赋同样的值 第1个参数内存首地址 第2个参数所要赋的值 第3个参数所要赋值的字节数 list_clear 成功返回0失败返回1 list_empty 检查链表是否为空1为空0为非空 last0表示有一个数据定义last-1时是空表 list_length last表示最后一个元素的下标lat1就是长度了 list_insert 1、验证表是否满了 2、插入的位置区间范围为[0, last1] 3、中间位置插入要涉及空间移动从后往前移动 4、存新值last1 list_show list_delete
将指定位置元素删除 首先不是空表 1、检查位置pos在[0,last] 2、移动元素 3、更新last list_merge
将两个线性表合并 1、La La 并Lb 2、bi是否在La中 3、不在插入 list_locate 判断元素是否在线性表中 总 list_purge
删除线性表当中的重复元素 注一种简便书写struct方法