2.1线性表的逻辑结构

1.线性表的抽象数据类型定义

1>Data

线性表中的数据元素具有相同类型,相邻元素具有前驱后继关系。

2>InitList

​ 用于初始化线性表,一般不带有输入输出。不过可以用来将某些变量设定为初始值。

//举个栗子:
InitList()
{
	x=0;
}

3>DestroyList

​ 用于销毁线性表,主要是为了释放线性表占用的储存空间。可以理解为回收站,作用和析构函数一样(好像一般情况下写法也和析构函数一个样,只需要在构造函数前面加个”~“就可以了)。

4>Length

​ 功能是求线性表的长度,在使用时一般会写一个Length函数用于返回数据元素的个数不会改变线性表。简称:计数的。

5>Get

按位查找(就是沿着序号一个一个挨着找),在线性表中查找序号为i(i就是你输入的那个序号)的数据元素。可以把这玩意儿和switch语句联想一下,都是输入特定值获得输入;都得要有相对应的”case“才能正确输出,否则输出异常。

Input:元素的序号i
Output:如果i合法(就是能对上号),返回序号为i的元素值(即i所对应的数据);否则抛出异常(指异常处理机制,C++中有讲)

Tip:C++的异常处理机制

6>Locate

按值查找(和Get正好相反,Locate不管序号,直接在数值里面检索),在线性表中查找值等于x(x是你输入的那个值)的元素。这个和上面的Get相反,很好记,原理也差不多。

Input:数据元素x
Output:如果查找成功(和上面的原理一样,这里不再过多解释),返回元素x在表中的序号;否则返回0

7>Insert

​ 插入操作,在线性表的第i个位置处插入一个新元素x。这里联想一下平时怎么往数组里面塞数据的,就可以推测出线性表的插♂入是什么样的一个概念了。(懂了,是cin>>a[i]的promax版本!)

Input:插入位置i;待插元素x
Output:若插入不成功,抛出异常

8>Delete

​ 删除操作,删除线性表中的第i个元素。※划重点了嗷!这个地方以后要考的,还是个难点~

Input:删除位置i(注意,这里是连着i这个位置一起被删了,由后面的取代被删掉的;在实际操作中,可以通过更改删除操作的对象来选择是删除位置还是只删除元素)
Output:若删除成功,返回被删元素;否则抛出异常(比如表内数据为空时)

9>Empty

​ 判空操作,判断线性表是否为空表。和Length一样,不会改变线性表※又是一个重点,因为你以后在写线性表时总是需要考虑”线性表是否为空“,为空/不为空所对应的操作各不相同,而且这个步骤还很容易被遗忘。。。

Input:NULL
Output:若是空表,返回1;否则返回0

10>PrintList

​ 遍历操作,按序号依次输出线性表中的元素。又一个不会改变线性表的操作~作用和类与对象里面的Display函数一样。

Input:NULL
Output:线性表中的各个数据元素

2.小结

​ 上面的各种操作在线性表中相当于英语中的字母,在解决实际问题时通常是这些操作的组合,将”字母“组合在一起才能连成”单词“,而一堆基础”单词“连起来就是一个”句子“甚至”文章“——也就是一个大型的、完整的程序(纯个人理解加猜想,有错欢迎指正)。

posted @ 2023-04-16 18:16  杨与S8  阅读(86)  评论(0编辑  收藏  举报