目录
什么是线性表?
线性表的定义:
如果有如下几个元素:a1,a2,a3......an,数据类型相同,可以构成一个有限序列,那就可以称为线性表。
a2在a3的前面,可以说a2是a3的直接前驱元素,a3在a2的后面,可以说a3是a2的直接后继元素。a1只有一个直接后继,an只有一个直接前驱,其他元素只有一个直接前驱和直接后继。
上述线性表元素有n个,n叫做线性表的长度,n=0时线性表称为空表。
ai时线性表中第i个数据元素,i称为ai在线性表中的位序,i是从1开始的。
举几个生活中的例子:
星座是线性表。每年从第一个星座开始到最后一个星座结尾,中间的星座都有唯一的一个前驱和一个后继。
公司的架构不是线性表。由上至下,上面的每一个职位都对应着下面的多个职位,是“一对多”的结构,前驱和后继并不唯一。
朋友关系不是线性表。一个人可以与多个人建立朋友关系,并不唯一。
线性表的基本操作有哪些?
创建:InitList(&L) 构造一个空的线性表L并分配内存
销毁:DestroyList(&L) 销毁线性表L并释放空间
插入:ListInsert(&L,i,e) 在L的i处插入e
删除:ListDelete(&L,i,&e) 把L的i处的元素删除,e表示删除的值
按值查找:LocateElem(L,e) 在L中找e
按位查找:GetElem(L,i) 获取L中的第i个元素
求表长:Length(L) 返回L的长度
输出:PrintList(L) 按顺序输出L中所有元素
判空:Empty(L) 若L为空返回true,反之返回false
这些操作是最基础的,其他操作可以在上述操作的基础上实现。