#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct bintree
{
char data;
struct bintree *lc,*rc;
}bintree,*tr;
void creat(tr &T)
{char ch;
cin>>ch;
if(ch=='@')
T=NULL;
else
{
T=new bintree;
T->data=ch;
creat(T->lc);
creat(T->rc);
}
}
void travel(tr T)
{
tr s[100];
int top;
top=0;
while(T!=NULL||top!=0)
{while(T!=NULL)
{s[++top]=T;
T=T->lc;
}
if(top!=0)
{
T=s[top--];
cout<<T->data;
T=T->rc;
}
}
}
int main()
{tr T;
int l;
T=NULL;
creat(T);
travel(T);
return 0;
}
树的非递归中序表示法
最新推荐文章于 2022-05-13 11:41:27 发布
这篇博客介绍了如何使用栈来实现二叉树的非递归中序遍历。通过创建一个辅助栈,当当前节点不为空时将其压入栈中并遍历左子树,然后在栈不空时弹出节点并访问,接着遍历右子树,实现了二叉树的中序遍历过程。示例代码用C++编写,包括了树的创建和遍历函数。
摘要由CSDN通过智能技术生成