sinat_25885723
2015-09-05 06:43
采纳率: 60%
浏览 1.5k
已采纳

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

//二叉树的遍历
//按先序序列建立一棵二叉树,按照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;
}

4条回答 默认 最新

相关推荐 更多相似问题