线性表的基本操作

参考教材:数据结构C语言版(严蔚敏,吴伟民编著)

InitList(&L) (Initialization List:初始化线性表)

操作结果:构造一个空的线性表L。(分配内存空间)

DestroyList(&L) (删除)

初始条件:线性表L已存在。

操作结果:销毁线性表L。(从内存中删除线性表,释放空间)

ClearList(&L) (重置)

初始条件:线性表L已存在。

操作结果:将L重置为空表。(内存还有,但是没有元素)

ListEmpty(L) (判断线性表是否为空表,空表n=0)

初始条件:线性表L已存在。

操作结果:若L为空表,则返回TRUE,否则返回FALSE。

ListLength(L) (求线性表的长度:线性表当中元素的个数)

初始条件:线性表L已存在。

操作结果:返回L中数据元素个数。

GetElem(L, i, &e) (获取线性表当中元素)

初始条件:线性表L已存在,1 ≤ i ≤ ListLength(L)。

操作结果:用e返回L中第i个数据元素的值。

LocateElem(L,e,compare()) (查找、定位)

初始条件:线性表L已存在,compare()是数据元素判定函数。

操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。若这样的数据元素不存在,则返回值为0。

PriorElem(L,cur_e,&pre_e) (求一个元素的前趋)

初始条件:线性表L已存在。

操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。

NextElem(L,cur_e,&next_e) (获取一个元素的后继)

初始条件:线性表L已存在。

操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。

ListInsert(&L,i,e) (插入元素)

初始条件:线性表L已存在,1 ≤ i ≤ ListLength(L)+ 1。

操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。

例:插入元素e之前(长度为n):

插入元素e之后(长度为n+1):

此处是e的后继

ListDelete(&L,i,&e) (删除元素)

初始条件:线性表L已存在且非空,1 ≤ i ≤ ListLength(L)。

操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1。

例:删除前(长度为n):

删除后(长度为n-1):

ListTraverse(L,visit()) (遍历线性表)

初始条件:线性表L已存在。

操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败

PrintList(L):输出:按照前后顺序输出线性表L的所有元素值。

相关推荐
卡布叻_星星33 分钟前
Vue 生态演进指南:主流框架搭配以及Vue CLI vs Vite 与 Vue2 vs Vue3 核心区别
笔记
华舞灵瞳36 分钟前
学习FPGA(六)锁相环
学习·fpga开发
小裕哥略帅1 小时前
PMP学习笔记--环境
笔记·学习
leo__5201 小时前
基于两步成像算法的聚束模式SAR MATLAB实现
开发语言·算法·matlab
liuaa411 小时前
期刊论文笔记
笔记
HXR_plume2 小时前
【Web信息处理与应用课程笔记3】个性化检索(上)
笔记
前端小白在前进2 小时前
力扣刷题:在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
Darkershadow2 小时前
python学习之串口通信
python·学习
某林2123 小时前
基于SLAM Toolbox的移动机器人激光建图算法原理与工程实现
stm32·嵌入式硬件·算法·slam
BullSmall3 小时前
普罗米修斯 的学习路径及建议
学习·prometheus