【发布时间】:2019-11-01 13:49:48
【问题描述】:
我有二叉搜索树
c
b d
a e
f
我想打印
c
b
a
d
e
f
不保存每个节点的深度。我试过了:
typedef struct _bst_t
{
char word[MAX_WORD_LEN];
struct _bst_t *left;
struct _bst_t *right;
} bst_t;
void bst_print(bst_t *bst)
{
if (bst != NULL)
{
printf("%s\n", bst->word);
printf(" ");
if (bst->left != NULL)
bst_print(bst->left);
if(bst->right != NULL)
bst_print(bst->right);
}
}
我应该如何更改此代码?
哦。很抱歉,没有提供每个节点的深度。我应该创建一个新函数来获取每个节点的深度吗??
【问题讨论】:
-
该问题无法回答,因为没有足够的信息。请阅读以下内容:How to Ask 和 edit 您的问题并显示minimal reproducible example。
-
就个人而言,我认为这里有足够的代码来理解问题,尽管您应该包括它当前显示的内容以使生活更轻松。
-
@waniwani 所有单词的长度都一样吗?
-
@VladfromMoscow 在此示例中,我使用了 a、b、c、d、e、f,但 bst_t->word 用于保存单词。所以它可以是不同长度的单词。
-
看看下面的答案(他们都说基本相同)。您不需要函数来获取每个节点的深度,深度是通过递归深度隐式知道的。
标签: c binary-tree binary-search-tree