A
B D
C E G
F
按照这棵树来
typedef struct bitree{
char data;
struct bitree *right;
struct bitree *left;
}bitree;
//下面是他的非递归程序
void preorder(bitree *t)
{bitree stack[100],node;
int top=1;
stack[top]=t;
while(top>0)
{node=stack[top];
top--;
printf("%c",node->data);
if(node->right!=NULL)
{top++;
stack[top]=node->right;
}
if(node->left!=NULL)
{top++;
stack[top]=node->left;
}
}
下面是栈中的情况
空栈 top=0;
A top=1;
///
B
D top=2;
//
C
D top=2;
//
D top=1;
//
E
G top=2;
///
F
G top=2;
///
G top=1;
G出栈 top=0;