二叉树的遍历(1):前序遍历
2015-06-04 10:31
302 查看
#include <iostream> #include <stack> #include <queue> using namespace std; typedef int TreeNodeElem; struct TreeNode { TreeNode* left; TreeNode* right; TreeNodeElem elem; }; //递归遍历 void preOrder_R(TreeNode* root, int(*visit)(TreeNode*)) { if (root == nullptr) { return; } visit(root); preOrder_R(root->left, visit); preOrder_R(root->right, visit); } //非递归遍历 void preOrder(TreeNode* root, int(*visit)(TreeNode*)) { TreeNode* p = root; stack<TreeNode*> s; if (p != nullptr) { s.push(p); } while (!s.empty()) { p = s.top(); s.pop(); visit(p); if (p->right != nullptr) { s.push(p->right); } if (p->left != nullptr) { s.push(p->left); } } }
相关文章推荐
- 内联汇编使用简介
- ca-bundle.crt to java truststore(e.g. trustStore.jks)
- mac os 利用ssh 搭建git server服务器详细教程,以及git基本用法
- java socket 通信实例
- MySQL高可用架构之MHA
- linux定时任务crontab详解
- 二维数组中的查找
- powershell 枚举远程主机登录会话 [PowerQuinsta]
- POJ3262 Protecting the Flowers(贪心)
- 黄聪:wordpress如何添加自定义文章快速编辑按钮
- Error: Cannot run program "/home/xxx/android_developer_tools/android-ndk-r8/ndk-build.cmd": Unknown reason
- PHP几种抓取网络数据的常见方法
- WinForm程序开发
- Android自己主动化測试——CTS測试
- edmx
- 关于iWebOffice中使用变量插入到Office书签里面
- 一次业务数据处理的设计图
- Winows 10 build 10136最新截图曝光! Edge浏览器图标正式使用
- 运维常用软件
- mac pro nginx配置