SWUST OJ数据结构后40题:层次遍历与森林树数量统计

需积分: 50 6 下载量 125 浏览量 更新于2024-09-04 2 收藏 27KB DOCX 举报
本资源文档主要包含两个与数据结构相关的C++代码片段,针对的是西南科技大学(SWUST)在线 Judge(OJ)平台上的后40题中的部分题目。首先,我们来看第一个题目,其标题是"980:输出利用先序遍历创建的二叉树的层次遍历序列"。 在提供的代码中,定义了一个名为`Tree`的结构体,用于表示二叉树的节点,包含一个字符类型的`data`成员和两个指向左右子节点的指针`L_kid`和`R_kid`。`initTree`函数用于构建二叉树,通过输入字符判断是否为根节点并递归初始化左右子树。`Traverse`函数采用广度优先搜索(BFS)的方式,使用队列来实现先序遍历(根-左-右),输出二叉树的层次遍历序列。 第二个代码片段是"981:统计利用二叉树存储的森林中树的棵数",同样涉及到二叉树。这里的任务是计算一个由二叉树构成的森林中有多少棵树。`count`函数递归地遍历二叉树,每当遇到非空的右子节点时,计数器`k`加一,表示找到一棵新的树。`initTree`函数在遇到`'#'`结束符时停止添加新节点,确保正确处理森林结构。 这两个代码示例展示了在数据结构课程中,学生可能会遇到的基础算法和数据结构问题,包括二叉树的建立、遍历以及对森林结构的理解。通过解决这类问题,学生可以加深对二叉树及其操作(如先序遍历和层次遍历)、递归和动态内存管理等概念的理解。同时,这也是实际编程竞赛中常见的技能训练,有助于提升编程能力和解决问题的能力。