2023春数据结构与算法实验课:任务1-3详解及评分规则

需积分: 0 3 下载量 15 浏览量 更新于2024-08-04 收藏 227KB PDF 举报
本次实验课涉及三个主要任务,分别是: 1. **二叉树的统计** (count.cpp) - 任务要求是根据输入的扩展二叉树的前序序列(由字符表示,空节点用'#'标识),计算具有一个孩子的节点数量。输入格式是一串字符,长度不超过200,输出是一个整数表示符合条件的节点数,以及示例输入和输出已给出。 2. **堆的基本操作实现** (heap.cpp) - 本部分关注堆的数据结构,需要实现四个基本操作:Insert(插入元素),Delete_Min(删除最小元素)、Delete(删除指定位置的元素)以及Decrease_Value(降低指定元素值并保持堆性质)。提供了一个样例输入,展示了命令序列和期望的堆排序结果输出。 3. **并查集** (disjointset.cpp) - 这部分涉及并查集数据结构,即Disjoint Set Union(DSU)的实现。输入包括节点总数和边的数量,以及每条边的两个端点。输出应该是并查集中各节点的集合信息,用于解决查找、合并等操作。 实验课的参考难度分为三个级别:简单、中等和困难,意味着任务的复杂性和对基础知识的要求逐渐提高。同时,实验课程强调了使用限制,不允许使用C++/STL库,只能使用stdlib/stdio/iostream/memory/malloc等特定头文件。对于提交时间,有三次提交机会,并且后续提交将覆盖之前的代码。提交后,测试用例会在次日通过企业微信群发布,供学生课后参考和改进。 评分规则对提交时间有严格的管理,课上当堂提交的正常评分,课后不同时间点提交会有不同程度的折扣。最后,实验课明确禁止作弊,违反规定将导致零分。 整个实验课旨在锻炼学生的编程技能,特别是数据结构和算法的应用,以及对C++语言的理解和控制。通过完成这些任务,学生将能够提升他们的问题解决能力、代码实现技巧和数据结构的运用能力。