#include<stdio.h>
#include<malloc.h>
#include<iostream>
#include<string.h>
#include<stack>
using namespace std;
typedef struct node{
int data;
node *lchild;
node *rchild;
}bitree;
bitree *create1(){
bitree *T;
int c;
scanf("%d",&c);
if(c==0){
T=NULL;
}
else{
T=(bitree*)malloc(sizeof(bitree));
T->data=c;
T->lchild=create1();
T->rchild=create1();
}
return T;
}
bitree *percreateTree(){
bitree *T;
int c;
scanf("%d",&c);
if(c==0){
T=NULL;
}
else{
T=(bitree*)malloc(sizeof(bitree));
T->data=c;
T->lchild=percreateTree();
T->rchild=percreateTree();
}
return T;
}
void mid(bitree *T){//递归
if(T!=NULL){
mid(T->lchild);
printf("%d",T->data);
mid(T->rchild);
}
}
void mid2(bitree *T){//非递归中序
stack<bitree*> s;
while(T!=NULL||!s.empty()){
while(T){
s.push(T);
T=T->lchild;
}
if(!s.empty()){
T=s.top();
printf("%d",T->data);
s.pop();
T=T->rchild;
}
}
}
void main(){
bitree *T=create1();
mid(T);
mid2(T);
}
lc94-中序遍历
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 参考http://blog.csdn.net/chaoyue1216/article/details/7609689
- 注:本文来自 左程云的书《程序员代码面试指南》 题目:分别用递归和非递归方法,实现二叉树的先序遍历(根左右)、中序...
- 题意大概是以字符串的形式输入前序遍历和中序遍历,输出后序遍历。一个栗子 ↓输入:ABDEC DBEAC输出:DEBCA
- 在前文数据结构:二叉树的原理及java实现中,我们已经了解了二叉树的原理及二叉树的三种遍历方式,假设父节点是N,左...
- 首先 观察这个二叉树可见是这样的:1.以B为根节点的左子树 A根节点 以C为根节点的右子树2.以D为根节点的左子树...