给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出

(算法导论第十章10.4-2)

#include <iostream>
template<typename T>
void TraverseBinaryTreeIndex(const BinaryTreeNodeIndex<T>* array,const BinaryTreeNodeIndex<T>& root)
{std::cout<<root.key<<" ";if(root.left!=-1){TraverseBinaryTreeIndex(array,array[root.left]);}if(root.right!=-1){TraverseBinaryTreeIndex(array,array[root.right]);}
}

辅助类
1⃣️BinaryTreeNodeIndex
地址链接
测试代码

   BinaryTreeNodeIndex<int> binaryTreeNode[10] = {BinaryTreeNodeIndex<int>(12,5,6,2),BinaryTreeNodeIndex<int>(15,7,7,-1),BinaryTreeNodeIndex<int>(4,0,9,-1),BinaryTreeNodeIndex<int>(10,5,4,8),BinaryTreeNodeIndex<int>(2,3,-1,-1),BinaryTreeNodeIndex<int>(18,-1,0,3),BinaryTreeNodeIndex<int>(7,0,-1,-1),BinaryTreeNodeIndex<int>(14,1,5,1),BinaryTreeNodeIndex<int>(21,3,-1,-1),BinaryTreeNodeIndex<int>(5,2,-1,-1),};TraverseBinaryTreeIndex(binaryTreeNode,binaryTreeNode[5]);cout<<endl;

给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)相关推荐

  1. 给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)

    给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构 (算法导论第十章10.4-3) template<typename T> ...

  2. 用一个单链表L实现一个队列(算法导论第十章10.2-3)

    用一个单链表L实现一个队列(算法导论第十章10.2-3) template<typename T> class HalfNode {public:T key;HalfNode* next; ...

  3. 用一个单链表L实现一个栈(算法导论第十章10.2-2题)

    用一个单链表L实现一个栈(算法导论第十章10.2-2题) template<typename T> class HalfNode {public:T key;HalfNode* next; ...

  4. 怎样写出一个较好的高速排序程序

    写出一个较好的高速排序程序 高速排序是经常使用的排序算法之中的一个,但要想写出一个又快又准的使用程序,就不是那么简单了 须要注意的事项 首先要写正确.通常使用递归实现.其递归相当于二叉树展开,因此假设 ...

  5. 给定一个n节点二叉树,写出一个O(n)时间的非递归的过程,将该树每个结点的关键字输出(算法导论第三版第十章10.4-5)

    给定一个n节点二叉树,写出一个O(n)时间的非递归的过程,将该树每个结点的关键字输出.要求除该树本树的存储空间外只能使用固定量的额外存储空间,且过程中不得修改该树,即使是暂时的修改也不允许. (算法导 ...

  6. 如何写出一个较好的快速排序程序

    写出一个较好的快速排序程序 快速排序是常用的排序算法之一,但要想写出一个又快又准的使用程序,就不是那么简单了 需要注意的事项 首先要写正确.通常使用递归实现.其递归相当于二叉树展开,因此如果要用迭代实 ...

  7. 用js写出数据结构中的自定义队列,利用队列思想写出一个击鼓传花的游戏函数,优先级队列

    队列的核心是先进先出 1.用js写出数据结构中的自定义队列 class Queue{constructor(){this.item = [];}// 1.入队enqueue(ele){this.ite ...

  8. linux mysql 不稳定_linux,mysql:今天写出一个十分弱智的bug!

    今天写出一个十分弱智的bug,记录一下,提醒自己以后别这种犯错,不怕丢人哈~ 在写一个分页查询记录的sql时,要根据添加的时间逆序分页输出,之前的写法是酱紫: select record.a, y.c ...

  9. ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

    题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...

最新文章

  1. mysql查看当前实时连接数
  2. springboot springmvc 抛出全局异常解决方法
  3. java代码执行mysql语句_三种执行SQL语句的的JAVA代码
  4. JVM优化原理—Java架构师必须要知晓的知识
  5. leetcode 376. Wiggle Subsequence | 376. 摆动序列(动态规划)
  6. leetcode15. 三数之和(三指针)
  7. 高频交易的思路模型简介
  8. 自学编程的12个网站
  9. QCC3040----SOC模块
  10. 羞羞的报告:2020年轻人性爱数据报告。
  11. 在Ubuntu20.04上安装ros
  12. mvc5 ef6 mysql code first 架构_跟蓝狐学MVC教程--MVC5与EF6 Code First 第一个入门完整实例教程...
  13. 微信小程序如何封装自己的组件?
  14. C++查询文本中所有单词出现的频率,并且根据出现次数由多到少依次排列。
  15. 我的思文斋:积水成渊则蛟龙生焉
  16. CSS3新特性详细介绍
  17. Modeling Relational Data with Graph Convolutional Networks(2017)
  18. 计算机桌面文件能单独设密码吗,电脑上文件夹怎么加密_桌面文件夹怎么加密码...
  19. 机器学习之先验分布,后验分布,共轭先验分布
  20. 网络应用之JavaScript

热门文章

  1. C#窗体的Load事件与Shown事件的区别
  2. linux之安装boost环境
  3. Android之JNI ERROR (app bug): accessed stale global reference 0xb39533f2 (index 19708 in a table of s
  4. linux之使用indent格式化代码总结
  5. Android之Volley 源码解析
  6. 华为鸿蒙vogtloop30pro价格,华为Mate30系列基本确认:首发麒麟985+鸿蒙系统,价格感人!...
  7. 二进制全排列 java_排列组合算法真厉害,傻瓜都能学会
  8. 中国25个最“吓人”地名,看完都被吓笑了!
  9. 各个大学的录取通知书,哪个颜值最高?
  10. 大牛逝世 = 新人上位 = 科学进步?新研究表明确实如此