gpt4 book ai didi

c - 打印树的节点

转载 作者:行者123 更新时间:2023-11-30 15:23:23 25 4
gpt4 key购买 nike

我有一个 k 叉树,如下所示:

struct node {
int num;
int data;
struct node **kids;
}

我创建了一个函数来打印树节点的数据。

示例:

     a
/ | \
b c d
/
e

将打印:

a
b
e
c
d

功能是:

void visit(struct node *head){
int i;

if (head == NULL)
return;

printf("%d\n", head->data);

for (i = 0; i < head->num; i++)
visit(head->kids[i]);

}

问题是,我怎样才能打印我打印的每个节点的级别。我试图声明一个变量 int level = 0;并增加它,但它不起作用,因为递归调用会重置它。

最佳答案

void visit(struct node *head){ static int i;

if (head == NULL)
return;

printf("%d\n", head->data);
printf("Level : %d\n",i);
for (i = 0; i < head->num; i++)
visit(head->kids[i]);
i = i + 1;

}

关于c - 打印树的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28807059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com