二叉树非递归遍历 (前,中,后) c
来源:互联网 发布:与美食有关的句子 知乎 编辑:程序博客网 时间:2024/06/05 02:40
#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>#include<stack>using namespace std;struct Node{ int data; struct Node *left; struct Node *right; Node(int data) { this->data=data; this->left=NULL; this->right=NULL; }};void zhongxu(Node *root){ if(root==NULL) return ; Node *p=root; stack<Node *>s; while(p||!s.empty()) { while(p) { s.push(p); p=p->left; } if(!s.empty()) { p=s.top(); s.pop(); cout<<p->data<<" "; p=p->right; } }}void qianxu(Node *root){ if(root==NULL) return ; Node *p=root; stack<Node *>s; while(p||!s.empty()) { while(p) { cout<<p->data<<" "; s.push(p); p=p->left; } if(!s.empty()) { p=s.top(); s.pop(); p=p->right; } }}void houxu(Node *root){ if(root==NULL) return ; Node *p=root; stack<Node *>s; s.push(p); s.push(p); while(!s.empty()) { p=s.top(); s.pop(); if(!s.empty()&&p==s.top()) { if(p->right) s.push(p->right), s.push(p->right); if(p->left) s.push(p->left), s.push(p->left); } else cout<<p->data<<" "; }}int main(){ Node *p1=new Node(4); Node *p2=new Node(7); Node *p3=new Node(6); Node *p4=new Node(3); Node *p5=new Node(2); Node *p6=new Node(5); Node *p7=new Node(8); Node *p8=new Node(1); p1->left=p2; p1->right=p3; p2->left=p4; p2->right=p5; p3->left=p6; p3->right=p7; p7->right=p8; zhongxu(p1); cout<<endl; qianxu(p1); cout<<endl; houxu(p1); cout<<endl;}
阅读全文
0 0
- 二叉树非递归遍历 (前,中,后) c
- (C语言版)二叉树遍历算法——包含递归前、中、后序和层次,非递归前、中、后序和层次遍历共八种
- 二叉树前、中、后及层次非递归遍历
- 二叉树非递归前、中、后序遍历
- 二叉树非递归前、中、后序遍历实现
- 二叉树的前,中,后遍历(非递归)
- 二叉树前、中、后非递归遍历
- 二叉树的非递归【前/中/后 序遍历】
- 非递归前,中,后序遍历二叉树
- 二叉树:前序,后序,中序遍历(递归+非递归);层次(队列)
- 二叉树的创建,遍历(前序,中序,后序)-递归 非递归
- (前、中、后)序遍历二叉树的递归、非递归算法!
- 二叉树的前序、中序、后序(递归、非递归)遍历java实现
- 二叉树遍历(前序、中序、后序)递归与非递归
- 二叉树前、中、后序遍历(递归与非递归)
- 【数据结构】二叉树(前、中、后)序遍历的递归与非递归算法
- 数据结构:二叉树的前序,中序,后序遍历(递归和非递归)
- 二叉树的递归和非递归遍历(前序、中序、后序)
- AndroidStudio升级问题
- Ubuntu16.04中文输入法安装初战
- PHP使用curl提交数据的三种方法
- WSWP(用python写爬虫)笔记二:实现链接获取和数据存储爬虫
- 高德地图
- 二叉树非递归遍历 (前,中,后) c
- 互联网分层架构,为啥要前后端分离?
- JavaEE结合quartz实现订单自动失效功能
- java学习第37天,集合转换数组
- 2017.10.25 LeetCode
- UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK编码
- OkHttp简单封装,添加泛型
- linux下解压命令大全
- Android多层View点击穿透问题