C++程序设计:初始化、操作与排序算法练习

需积分: 0 0 下载量 101 浏览量 更新于2024-07-01 收藏 1.19MB PDF 举报
本篇文档是关于程序设计与算法基础课程的第二章作业,涉及C++编程语言中的链表操作。主要包括两个函数:一个用于在有序列表中插入元素,另一个用于初始化并显示链表的元素。 1. **数据结构定义**: - 定义了一个名为`SqList`的结构体,其中包含一个整型数组`data`和一个整型变量`length`。`data`数组的大小由`#define`预处理指令`MAXSIZE`设定,这里是30个元素。`SqList`类型通过`typedef`进行了简化。 2. **函数`InitList`**: - 此函数用于初始化一个`SqList`实例。它首先动态分配内存来创建一个新的`SqList`对象,然后将整型数组`a`中的元素(1到5)复制到`data`数组中,最后设置`length`为5。这相当于创建了一个初始长度为5的有序列表。 3. **函数`fun`**: - 函数`fun`接受一个`SqList`指针`L`以及两个整数`x`和`y`作为参数。它的目的是将`L`中的元素重新排列,将所有小于`x`或大于`y`的元素移动到数组的前面,而保持其他元素位置不变。这个函数利用了`for`循环遍历数组,并用`j`追踪已移动的元素位置。 4. **`DispList`函数**: - 这个函数用于打印链表中的所有元素。通过遍历`L->data`数组,逐个输出每个元素,每输出一个元素后换行。 5. **`main`函数**: - 主函数部分首先调用`InitList`函数创建一个`SqList`实例并将初始值显示出来。接着,用户被提示输入要删除的数的范围,通过调用`fun`函数对链表进行操作。最后,再次调用`DispList`函数展示修改后的链表内容。 6. 第二个未提供的文件片段与第一个相似,可能也是一个处理链表的函数或者练习,但具体内容没有给出。考虑到这部分代码结构与第6题类似,可以推测可能是关于另一种链表操作的练习,如查找、删除或插入特定元素。 这份作业要求学生熟练掌握C++中的链表操作,包括初始化、插入和显示操作,并能够根据用户输入进行相应处理。学生需要理解结构体、指针、循环和数组等基本概念,并能够编写和调试高效的算法来实现所需功能。