- 1
- 0
- 约 5页
- 2017-06-17 发布于湖北
- 举报
函数递归在树形结构数据遍历中的应用
我们在使用树形结构数据时,常常需要遍历整棵树或某一支下的所有结点,用于查找、打印等功能。因为树形结构不同于数组、链表等简单数据结构,它像树枝一样每个根结点可以具有多个子结点,无限延展,因此需要专门的算法去遍历。树形结构的遍历有很多种方法,下面我们以紫金桥监控组态软件(以下简称为“RealInfo”)为例,简单讲解函数递归在这种遍历方法中的应用。
在RealInfo中,“树形控件”是表示树状结构数据的组件,“自由报表”是表示表格数据的组件,这两种组件自身都提供了一些常用方法。我们现在实现这样的功能:将树形控件中的指定分支数据打印在自由报表中。可以利用窗口自定义函数的递归功能。
树形控件中的数据显示方式如下图所示:
每个结点以结点编码为唯一标识,每个结点可以显示一个字符串作为结点文本(详见RealInfo联机帮助)。
本例中,我们将树形结构数据打印在自由报表上,其效果如下图所示:
每个根结点打印完成后,遇到子结点时打印位置自动向右、向下移动一个单元格;遇到兄弟结点时打印位置向下移动一个单元格。
现在我们开始分析算法。我们知道,树的遍历是指沿着某条搜索路线,依次对中每个结点均做一次且仅做一次访问
函数首先判断输入结点是否具有子结点,如果没有则返回,如果有则取得子结点列表,然后循环打印每个子结点并递归调用自身函数打印其子结点,当一个结点a
您可能关注的文档
- 第4篇 栈_队列.ppt
- 第二章 劳动法调整对象和适用范围.ppt
- 第2节 C++程序设计基础-1.ppt
- 语言学概论五节语法.ppt
- C++标准库与标准模板库.docx
- 永安在海西建设的优劣态势和发展方向.doc
- 创建文档内部超级链接.doc
- 第20篇_多任务操作系统.ppt
- 微软C++编译器命令行模式设定与用法.doc
- 诉求及重构:教师文化建设及创新.doc
- 2025广西北海市小微企业融资担保有限公司招聘实习生6人笔试历年参考题库附带答案详解.docx
- 建筑工程动火作业安全管控专项方案.docx
- 石油化工控制室工程作业指导书.docx
- ISOIEC 206192023 信息技术C#规范套件标准立项发展报告.docx
- ISOIEC 202372023 信息技术——火花塞3.0版标准立项发展报告.docx
- 2025广东茂名市高州市市属国有企业招聘企业人员24人笔试历年参考题库附带答案详解.docx
- 《人工智能基础与应用》课件——数字素养职业信息整理与环境准备.pptx
- 市政基础设施项目安全技术交底规范.docx
- 重点话题突破10运动、体育类(读后续写高频主题分类)(原卷版)-2024年高考英语.docx
- 室外电缆沟及电力井施工方案.docx
原创力文档

文档评论(0)