3

关于二叉树遍历问题,求问错在哪里。。。

//二叉树的遍历
//按先序序列建立一棵二叉树,按照ABC@@D@@E@F@@输入字符,@代表层数并查找D所在层数
//定义二叉树
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;
//按先序创建一棵二叉树
void creatBiTree(BiTree *T)
{
char c;
cin >> c;
if (c == ' ') *T = NULL;
else
{
*T = new BiTNode;
(*T)->data = c;
creatBiTree(&(*T)->lchild);
creatBiTree(&(*T)->rchild);
}
}
void visit(char c, int level)
{
if (c == 'D') cout << c << "在" << level <<"层"<< endl;
}
//先序遍历这棵二叉树
void preOrderTraverse(BiTree T,int level)
{
if (T)
{
visit(T->data, level);
preOrderTraverse(T->lchild, level+1);
preOrderTraverse(T->rchild,level+1);
}
}
int main()
{
int level = 1;
BiTree T = NULL;
creatBiTree(&T);
preOrderTraverse(T, level);
system("pause");
return 0;
}

查看全部
sinat_25885723
sinat_25885723
2015/09/05 06:43
  • c
  • 二叉树
  • 遍历
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

4个回复