c - 树的层数

标签 c tree

我写了一棵树,其中每个节点都有一个子节点列表。所以我的问题是:如何计算树的层数?谁能给我一些关于此的文档?谢谢你:)。

最佳答案

可以采用不同的方法来解决此问题。一种解决方案可能是使用计数器变量对节点进行计数,并增加计数器直到到达叶节点。但你必须照顾好

1. Longest Chain
2. Redundancy in couting

其次,如果每个节点都有一个子节点列表,则通过该列表对根节点中存在的节点进行计数。

一个非常合适的方法是在结构节点中按名称Level定义一个变量

typedef struct node {
...
Other members
...
int node_level;
} NODE;

并在创建根或任何其他节点时将其初始化为 1。然后在每次插入树时更新其值。

通过这样做,您可以在需要查找时查看任何子树的级别。另请注意,每个插入的节点将具有级别 1,并且其祖先将具有更高的级别。

关于c - 树的层数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37206438/

相关文章:

c - 确保一个 cpu 在另一个 cpu 读取 "double"之前写入了 "double"?

将 const char* 复制到 c 中的字符串

c - 将缓冲区的N个字节写入文件

linux - Windows 和 Linux 之间的文件层次结构差异

sql - 无循环依赖的依赖树的PostgreSQL设计

C - 禁用用户已经使用的可能性

c - 二维数组内存分配出错时如何正确释放

java - MINIMAX算法如何从树底向上进行BFS?

web-services - 如何使用网络服务创建树?

javascript - extjs3.4 : How to access items in a panel that do not have id/itemId