线性表的定义和基本操作

------线性表的定义

      线性表是具有相同数据类型的 n  (n>= 0)个数据元素的有限序列。其中 n 为 表长,当 n = 0

 时,该线性表是一个空表。若用 L 命名线性表,则其一般表示如下:

      L = ( a1 , a2 , a3 , ... , a(i) , a( i + 1) , ... , a(n)  )

    其中,a1 是唯一的 “ 第一个 ” 数据元素,又称为表头元素;a(n) 是唯一的 “ 最后一个 ” 数据元素,

又称为表尾元素。除了第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外 ,每个

元素 有且仅有一个直接后继。以上就是线性表的逻辑特性,这种线性表有序的逻辑结构正是线性表

名字的由来。

     由此,我们得出线性表的特点如下:

     》》表中元素的个数有限。

     》》表中元素具有逻辑上的顺序性,在序列中各元素排序有其先后次序

     》》表中元素都是数据元素,每一个元素都是单个元素

     》》表中元素的数据类型都相同。这意味着每一个元素占有相同大小的存储空间

     》》表示元素具有抽象性。即仅讨论元素间的逻辑关系,不考虑元素究竟是什么内容

    注意:线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,

    两者属于不同层面的概念,因此不要将其混淆。

----------线性表的基本操作

    一个数据结构的基本操作是指其最核心、最基本的操作。其他复杂的操作可以通过调用其基本

 操作来实现。线性表的主要操作如下:

 》》 InitList(&L) : 初始化表。构造一个空的线性表。

 》》 Length( L ) : 求表长。返回线性表 L 的长度,即 L 中数据元素的个数。

 》》 LocateElem( L , e ) : 按值查找操作。在表 L 中 查找具有给定关键字值的元素。

 》》 GetElem( L , i ) : 按位查找操作。获取表 L 中第 i 个位置的元素的值 

 》》 ListInsert( &L , i , e ) :插入操作。在表 L 中的第 i 个位置插入指定元素 e

 》》 ListDelete( &L , i , &e) : 删除操作。删除表 L 中第 i 个位置的元素,并用 e 返回删除元素的值。

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

 》》 Empty( L ) : 判空操作。若 L 为空表,则返回 true ,否则返回 false 。

 》》 DestroyList( &L ) : 销毁操作。销毁线性表,并释放线性表 L 所占用的内存空间。

 

注意: a.  基本操作的实现取决于采用哪一种存储结构,存储结构不同,算法的实现也不同。

          b. “ & ” 表示 C++ 中的引用。如果传入的变量是指针类型的变量,且在函数体内要对传入的

              指针进行改变,则将用到指针变量的引用型。在 C 中采用指针的指针也可达到同样的效果。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小达人Fighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值