树的度

一、概念

与图论中的“度”不同,树的度是如下定义的:有根树T中,结点x的子女数目称为x的度。也就是:在树中,结点有几个分叉,度就是几。

一个有用的小公式:树中结点数 = 总分叉数 +1。(这里的分叉数就是所有结点的度之和)


二、度的计算

1.设树T的度为4,其中度为1,2,3,4的节点个数分别为4,2,1,1,则T中的叶子数为?

解:

叶子的度数为0;那么设叶子数为x,则此树的总分叉数为1*4+2*2+3*1+4*1=15;此树的节点个数为16(此处涉及到一个公式;节点数=分叉数+1,由图形便可以观察出来)。又根据题目可以知道顶点数目还可以列出一个式子:4+2+1+1+x便可以得到等式:4+2+1+1+x=16;x=8为叶子数。

因为此题是数据结构中的问题:一般情况下都是有向树,所以叶子节点的度数为0,要区分于离散数学中的无向树叶子节点度为一。在数据结构中一般常用的公式为:二叉树:度为0的节点数=度为2的节点数+1(n0=n2+1)此公式可由上述计算思想推导(一般在二叉树那里的公式多一些,树中只要你明确定义,画出图来,便可以根据图形寻找出规律来)
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三叉搜索(Ternary Search Tree)是一种特殊的搜索,每个节点最多有三个子节点:小于当前节点的键的节点在左子,大于当前节点的键的节点在右子,等于当前节点的键的节点在中子。 计三叉搜索的高可以通过递归的方式实现。具体步骤如下: 1. 如果为空,直接返回0作为高。 2. 如果不为空,计的左子、中子和右子分别的高,分别记为leftHeight、centerHeight和rightHeight。 3. 的总高等于左子、中子和右子中的最大高再加1。 4. 返回的总高作为结果。 以下是用Python实现的示例代码: ``` class TreeNode: def __init__(self, key): self.key = key self.left = None self.center = None self.right = None def treeHeight(root): if root is None: return 0 # 计左子、中子和右子的高 leftHeight = treeHeight(root.left) centerHeight = treeHeight(root.center) rightHeight = treeHeight(root.right) # 返回左子、中子和右子中的最大高再加1 return max(leftHeight, centerHeight, rightHeight) + 1 # 示例用法 # 创建一个三叉搜索 root = TreeNode(5) node1 = TreeNode(3) node2 = TreeNode(7) node3 = TreeNode(2) node4 = TreeNode(4) node5 = TreeNode(6) node6 = TreeNode(8) root.left = node1 root.center = node2 node1.left = node3 node1.right = node4 node2.left = node5 node2.right = node6 # 计三叉搜索的高 height = treeHeight(root) print("三叉搜索的高为:", height) ``` 这样,就能够计出三叉搜索的高。以上代码中,假设三叉搜索的节点类为`TreeNode`,其中`key`表示节点的键值,`left`、`center`和`right`分别表示左子、中子和右子的指针。函数`treeHeight`使用递归的方法计的高,返回值为的高。示例中创建了一个简单的三叉搜索,然后计了其高并输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值