[Data Structure]使用非递归的方法对二叉树进行先序、中序、后续遍历
#include<bits/stdc++.h>
using namespace std;
typedef struct tree//构建一棵树的结点
{
int data;//这里的data其实用来放编号了,结点里并没有存数据
tree *left;//指向子树的指针
tree *right;
}tree;
void LRD(tree* p,int n)//后序遍历函数
{
int*flag=(int*)malloc(sizeof(int)*n);//标记数组
stack<tree*> wood;
tree*node1;
tree*node2;
while(1)
{
while(p)
{
node1=p;
*(flag+(node1->data))=1;//读到后进行标记再入栈
wood.push(node1);
p=p->left;//指向左子树(LRD)
<