二叉树的非递归遍历(前中后)
来源:互联网 发布:端口转发手机软件 编辑:程序博客网 时间:2024/06/06 03:03
//前序void PreOrder_Nor(){if(_pRoot == NULL)return;stack<Node*> s;s.push(_pRoot);while(!s.empty()){Node* pCur = NULL;pCur = s.top();cout<<pCur->_data<<" ";s.pop();if(pCur->_pRight)s.push(pCur->_pRight);if(pCur->_pLeft)s.push(pCur->_pLeft);}cout<<endl;}//中序void InOrder_Nor(){if(_pRoot == NULL)return;stack<Node*> s;Node* pCur = NULL;pCur = _pRoot;while(pCur || !s.empty()){while(pCur){s.push(pCur);pCur = pCur->_pLeft;} pCur = s.top();cout<<pCur->_data<<" ";s.pop();pCur = pCur->_pRight;}cout<<endl;}// 后续遍历的非递归版本void PostOrder_Nor(){if(_pRoot == NULL)return;stack<Node*> s;Node* pCur = _pRoot;Node* prev = NULL;while(pCur || !s.empty()){while(pCur){s.push(pCur);pCur = pCur->_pLeft;}Node* temp = NULL;temp = s.top();if(temp->_pRight == NULL || prev == temp->_pRight){cout<<temp->_data<<" ";prev = temp;s.pop();}elsepCur = temp->_pRight;}cout<<endl;}
阅读全文
0 0
- 二叉树的遍历(递归+非递归+层次遍历)
- 二叉树的遍历(非递归)
- 二叉树的遍历(非递归)
- 二叉树的遍历(非递归)
- 二叉树非递归遍历(前中后)
- 二叉树的非递归遍历(前中后)
- 二叉树的递归,非递归遍历
- 二叉树的递归+非递归遍历
- 二叉树的递归非递归遍历
- 二叉树的遍历--递归+非递归
- 二叉树的递归、非递归遍历
- 二叉树的递归非递归遍历
- 二叉树递归,非递归,前中后遍历
- 二叉树的遍历 -前中后--递归非递归 --链表,数组
- 二叉树的前中后遍历递归非递归实现
- 二叉树遍历(递归,非递归)
- 二叉树的遍历(递归实现+非递归实现)
- 二叉树的三种遍历(递归+非递归)
- 机器学习算法(七)EM算法族 EM、GMM
- 【js基础】鼠标移到图片上产生遮障效果
- 游戏服务器框架 golang
- Python实现设计模式--02.工厂模式(Factory Pattern)
- Docker--安装及遇到的问题
- 二叉树的非递归遍历(前中后)
- 2017 多校训练第一场 HDU 6034 Balala Power!
- 排序算法之-插入排序
- D
- 【妙算使用笔记】妙算学(zhe)习(teng)笔记 ——MANIFOLD下安装Onboard SDK
- Nordic推出支持Bluetooth MESH的SDK nRF5
- 哈夫曼树
- 排序算法之-快速排序
- 浅谈C++ STL常用容器