实验一 顺序表的基本操作
文章平均质量分 57
哈尔滨理工大学数据结构,顺序表的的基本操作
正正没洗头
软件工程本科在读
展开
-
第6关:两个有序顺序表的合并操作
任务描述本关任务:分别输入两个有序的整数序列(分别包含M和N个数据),建立两个有序顺序表,编写将这两个有序顺序表合并成为一个大的有序顺序表的合并操作函数。相关知识已知有两个按元素值递增有序的顺序表A和B。设计一个算法将顺序表A和B的全部元素归并到一个按元素递增有序的顺序表C中。算法思想:用i遍历顺序表A,用j遍历顺序表B。当A和B都未遍历完时,比较两者的当前元素,则将较小者复制到C中,若两者的当前元素相等,则将这两个元素都复制到C中。最后将尚未遍历完的顺序表的余下元素均复制到顺序表C中。原创 2021-11-21 23:52:02 · 6760 阅读 · 1 评论 -
第5关:顺序表的逆置操作
任务描述本关任务:编写顺序表的逆置操作函数。相关知识关于逆置,有一种非常暴力的解决方法,就是单独开辟一个同等大小的顺序表,然后新表从前往后遍历,同时原表从后往前遍历,依次赋值,最后得到的就是逆置后的顺序表。但这种方法的空间复杂度为O(n),所以并不能这么做。顺序表的就地逆置,只需让顺序表中的数据元素头尾依次交换即可,即交换第一个元素和最后一个元素,第二个和倒数第二个,依此类推,这种方法的空间复杂度为O(1)。编程要求根据提示,在右侧编辑器 Begin-End 区间补充代码,完成顺原创 2021-11-21 23:50:34 · 3050 阅读 · 0 评论 -
第4关:顺序表的按照值查找序号操作
任务描述本关任务:编写顺序表按照值查找序号操作的函数。相关知识在顺序表L找第一个值为e的元素,找到后返回其逻辑序号,否则返回0。注意:由于线性表的逻辑序号从1开始,这里用0表示没有找到值为e的元素。在算法实现时,应根据顺序表数据元素的类型ElemType编写判断两个数据元素是否相等的比较函数equals()。举例说明: (1)数据元素的类型ElemType为int类型typedef int ElemType; int equals(ElemType a,ElemType b原创 2021-11-21 23:48:59 · 4286 阅读 · 1 评论 -
第3关:顺序表的按照序号查找值操作
任务描述本关任务:编写顺序表的按照序号i查找数据元素值的操作函数。相关知识顺序表L已存在,先判断i值是否合法,如果合法,将顺序表L中第i个数据元素的值赋给e,e要带出函数体,类型声明为引用。编程要求根据提示,在右侧编辑器 Begin-End 区间补充代码,完成顺序表的按照序号查找操作函数的定义,具体要求如下:int GetElem(SqList L,int i,ElemType &e);//用e返回顺序表L中第i个数据元素的值测试说明平台会对你编写的代码进行测试:测原创 2021-11-21 23:46:32 · 3133 阅读 · 0 评论 -
第2关:顺序表的删除操作
任务描述本关任务:编写顺序表的删除操作函数。相关知识线性表的删除运算是指将表的第i(1≤i≤n)个元素删去,使长度为n的线性表 ( a1,…,ai−1,ai,ai+1,…,an),变成长度为n-1的线性表( a1,…,ai−1,ai+1,…,an)。算法思想:在顺序表上实现删除运算必须移动结点,才能反映出结点间的逻辑关系的变化。若i=n,则只要简单地删除终端结点,无须移动结点;若1≤i≤n-1,则必须将表中位置i+1,i+2,…,n的结点,依次前移到位置i,i+1,…,n-原创 2021-11-21 23:44:37 · 5694 阅读 · 1 评论 -
第1关:顺序表的插入操作
任务描述本关任务:编写顺序表的初始化、插入、遍历三个基本操作函数。相关知识顺序表的存储结构顺序表的存储结构可以借助于高级程序设计语言中的数组来表示,一维数组的下标与元素在线性表中的序号相对应。线性表的顺序存储结构可用C语言中动态分配的一维数组定义如下:/*线性表的动态分配顺序存储结构(用一维数组)*/ #define INIT_SIZE 100 //线性表存储空间的初始分配量 #define INCREMENT 10 //线性表存储空间的分配增量 typedef struc原创 2021-11-21 23:42:33 · 6107 阅读 · 1 评论