#include"BiTree.h"
//中序遍历并输出二叉树(递归方式)
void InOrderTraverse1(BTNode* T)
{
if (T != NULL)
{
InOrderTraverse1(T->lchild);
visite(T);
InOrderTraverse1(T->rchild);
}
}
//中序遍历并输出二叉树(非递归方式)
void InOrderTraverse2(BTNode* T)
{
if (T == NULL)
{
return;
}
BTNode* node = T;
BTNode* Stack[MAXSIZE];
int top = -1;
while (node != NULL || top != -1)
{
while (node != NULL)//先将根节点和所有左子树结点入栈
{
Stack[++top] = node;
node = node->lchild;
}
//访问当前结点并转向右子树
node = Stack[top--];
printf("%c\t",node->data);
node = node->rchild;
}
}
int main(int argc, char* argv[])
{
BTNode* T;
InitBiTree(T);
char str[] = "1(2,3(4(6),5))";
CreateBiTree(T, str);
PrintBiTree(T,0);
printf("中序遍历输出的结果为:");
//InOrderTraverse1(T);
//printf("\n");
InOrderTraverse2(T);
DestroyBiTree(T);
return 0;
}
11-25
4083
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交