赞
踩
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR -1
typedef int TElemType, Status;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild, *rchild;;
}BiTNode, *BiTree;
Status CreateBiTree(BiTree &T)
{
//按先序次序输入二叉树中的结点的值(一个字符), #表示空树
//构造二叉链表表示的二叉树T
char ch;
scanf("%c", &ch);
if (ch == '#')
{
T = NULL;
return OK;
}
else
{
T = (BiTree)malloc(sizeof(BiTNode));
T->data = ch;
CreateBiTree(T->lchild); //递归创建左子树
CreateBiTree(T->rchild); //递归创建右子树
}
}
Status PreOrderTraverse(BiTree T)
{
//先序遍历二叉链表结构存储的二叉树T,每访问到一个结点输出其值
if (T != NULL)
{
printf("%c",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild); //交换这三条语句的顺序可以实现先、中、后序遍历
return OK;
}
return OK;
}
void main()
{
BiTree T;
CreateBiTree(T);
PreOrderTraverse(T);
return;
}

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。