数据结构实验报告 专 业 信息管理 学生姓名 马 鑫 学 号 3140561030 班 号 信管 142 任课老师 原欣伟 指导老师 祝明伟 报告日期 2025 年 11 月 经济与管理学院2025 年 11 月验证性实验1、验证性实验名称:在单链表查找值为 x 的数据元素2、验证性程序设计1 )需要学生完成的函数名称、功能的简要说明2)需要学生完成的函数的具体算法,并编程实现void SearchList(char x) /*在单链表查找值为 x 的数据元素*/ { printf("\t\t\t 未找到值为%c 的结点!\n",x); printf("\t\t\t 请同学自己实现程序代码!\n"); return;}3 .调试和测试1)对上述算法和程序进行调试,发现问题并改正,使程序调试通过。2)建立一组数据实例,对程序的所有功能进行测试,并记录测试过程和结果。综合设计实验一、实验名称:直接插入排序的单链表实现方法二、实验目的1. 对前面所学的数据结构进行复习总结;2. 对有一定难度的题目,学会分解问题,自上而下,逐步解决; 3. 在掌握现有数据结构的基础上,对不同的问题,尝试改进相应的数据结构。三、实验内容1. 采纳单链表存储待排序数据;2. 设计直接插入排序算法。四、概要设计 1 )为了实现上述程序功能,需要定义单链表的数据类型: 首先将待排序数据建立一个带头结点的单链表,具体算法请参见单链表的 操作。在单链表中进行直接插入排序的基本思想是:将单链表划分为有序区和无序区,初始时有序区只包含一个元素结点,依次取无序区中的每一个结点,在有序区中查找待插入结点的插入位置,然后把该结点从单链表中删除,再插入到相应位置。例如,有一组待排序数据存储在单链表 head 中,排序过程如下:分析上述排序过程,需要设一个工作指针 q 在无序区中指向待插入的结点,为了查找正确的插入位置,每趟排序前需将工作指针 pre 和 p 指向头结点和开始结点,在找到插入位置后,将 q 所指结点插在结点 pre 和 p 之间。这相当于在单链表中删除 q 所指结点,然后将其插入到结点 pre 和 p 之间。为了成功删除结点q,且链表不断开,需要一个工作指针 L 指向结点 q 的前一个结点,即有序区的最后一个结点。 2 )函数名和函数的简要功能说明 void CreateList() :尾插法建立单链表void ShowList() :显示单链表所有元素void insertsortl(node *head) :直接插入排序算法.五、详细设计 实现概要设计中定义的所有的数据类型,对主程序和每个...