这是我写的两个函数,想把二叉排序树里面的数据打印成树的样子,为什么实现不了
typedef struct node {int data;
struct node*lchild;
struct node*rchild;
}*root;
int _depth;
void print_bst(root _root)//打印一棵树
{
root &m = _root;
if (m->rchild != NULL)
print_bst(m->rchild);
_depth = depth(_root, m);
while (--_depth > 0)printf(" ");
printf("%d\n", m->data);
if (m->lchild != NULL)
print_bst(m->lchild);
}
int depth(root _root, root _node)//可以计算每一个结点深度,以便打印树
{
int i = 1;
while (1)
{
if (_node->data < _root->data)
{
_root = _root->lchild;
i++;
}
else if (_node->data > _root->data)
{
_root = _root->rchild;
i++;
}
else
break;
}
return i;
}
[此贴子已经被作者于2018-12-12 11:21编辑过]