给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)
给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构
(算法导论第十章10.4-3)
template<typename T>
void TraverseBinaryTreeIndexByStack(const BinaryTreeNodeIndex<T>* array,const BinaryTreeNodeIndex<T>& root)
{Stack<BinaryTreeNodeIndex<T>> stack;stack.push(root);while (!stack.empty()){BinaryTreeNodeIndex<T> current = stack.pop();std::cout<<current.key<<" ";if(current.left!=-1){stack.push(array[current.left]);}if(current.right!=-1){stack.push(array[current.right]);}}}
辅助类
1⃣️BinaryTreeNodeIndex
地址链接
2⃣️Stack
地址链接
测试代码
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),};TraverseBinaryTreeIndexByStack(binaryTreeNode,binaryTreeNode[5]);cout<<endl;
给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)相关推荐
- 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)
给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出 (算法导论第十章10.4-2) #include <iostream> template<typena ...
- 用一个单链表L实现一个队列(算法导论第十章10.2-3)
用一个单链表L实现一个队列(算法导论第十章10.2-3) template<typename T> class HalfNode {public:T key;HalfNode* next; ...
- 用一个单链表L实现一个栈(算法导论第十章10.2-2题)
用一个单链表L实现一个栈(算法导论第十章10.2-2题) template<typename T> class HalfNode {public:T key;HalfNode* next; ...
- 对一组同构对象用单数组表示法实现(算法导论第十章10.3-2)
对一组同构对象用单数组表示法实现 (算法导论第十章10.3-2) 考虑到数据安全问题,多用了一个数组来处理安全问题. #ifndef C11LEARN_SINGULARGROUPSREPRESENTI ...
- 使用单项循环链表实现字典操作(算法导论第十章10.2-5题)
使用单项循环链表实现字典操作(算法导论第十章10.2-5题) template<typename T> void insert(SingleCycleL<T> & l, ...
- 数据结构 5-3-2 二叉树前序中序后序遍历非递归实现
一.前言 上一篇整理了几种遍历方式的递归实现,递归的实现方法都很简单,区区几句代码就可以实现,但是如果要用非递归的方法来实现就有些挑战了. 二.中序遍历 从中序遍历开始,其实非递归的方法就是把递归变成 ...
- n个节点的二叉树n+1_使用C ++程序将链接列表中的最后N个节点附加到第一个
n个节点的二叉树n+1 Given a linked list and an integer n, append the last n elements of the LL to front. Ass ...
- 我肝了一个月,给你写出了这本 Java 开发手册!
作者 | cxuan 来源 | 程序员cxuan 超长预警!!全文4万多字,墙裂建议收藏! 先来看一下本篇文章的思维导图吧,我会围绕下面这些内容进行讲解.内容很干,小伙伴们看完还希望不吝转发. 下面开 ...
- 3.为方便旅客,某航空公司拟开发一个机票预订系统。写出问题定义并分析此系统的可行性。
3.为方便旅客,某航空公司拟开发一个机票预订系统.旅行社把预订机票的旅客信息(姓名.性别.工作单位.身份证号码,旅行时间,旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机 ...
最新文章
- 四肢切割_四肢瘫痪者用大脑信号和先进的假肢完成吃饭动作
- Leetcode题目:Rectangle Area
- 跟我打卡LeetCode 61旋转链表62不同路径63不同路径 II
- antd源码解读(4)- ButtonGroup
- python获取列表list里面元素的下标
- 2005 打开 2010 项目经验总结
- textarea回车不换行 小程序_微信小程序商城到底值得不值得开通?
- 中海达数据怎么转rinex_cors账号网最新实战教程,中海达 F61 Plus RTK连接千寻cors账号的方法...
- 中国大推力矢量发动机WS15 跨入 世界先进水平!
- C++学习 ---- 系列文章
- 视觉SLAM笔记(7) 欧氏变换
- 根据指定的commit查找对应的log
- 凸优化第二章凸集 2.4 广义不等式
- python学习(一)----基础语法
- 获取当前系统时间(取相对于系统时间的前一周时间)
- 笔记本如何关闭屏幕亮度自动调节(解决切换界面时屏幕忽明忽暗的问题)
- 用Java实现目录复制(包含此目录下的所有文件与目录)
- Unity面试经验(两天面六家,四个offer,济南)
- Linux并发与同步专题 (4) Mutex互斥量
- 基于eBox旋转编码器
热门文章
- Android之Only fullscreen opaque activities can request orientation
- 剑指offer之二叉树的高度
- 剑指offer之树的子结构
- C和指针之二维字符串数组用指针数组、数组指针、二级指针打印
- Android之可以做的两件坏事---破解锁屏密码和获取Wifi密码
- 如何隐藏地址栏中的真实地址_Firefox推出Private Relay插件:可隐藏真实邮箱地址...
- 中英文标点符号切换的组合键_易混标点符号:一字线(—)、短横线(-)、浪纹线(~)...
- 每日一笑 | 为什么Python比Java更受欢迎?
- 渤海发现大油田,证券会提示风险,微博回应流量造假,刘国梁制定史上最严奖惩体系,这就是今天的大新闻。...
- 麻省理工告诉我们男女配对的真相!