数据结构与算法之第四章——树

4.1树的基本概念

一棵树是一些节点(node)的集合,这个集合可以是空集也可非空。对于没有儿子的节点成为树叶(leaf),即叶子节点。
路径(path):每两个相邻点的方向都是父节点到子节点,直至起始点找到目标点;
i节点的深度(depth):从根到i节点的唯一路径的长,其中根的深度为0;
i节点的高(height):从i节点到一片树叶的最长路径的长,其中所有叶子的高都是0;
一棵树的深度(depth of tree)等于其最深的树叶的深度,该深度等于这棵树的高。

4.2 二叉树

二叉树(binary)是一棵树,其中每个节点都不能有多于两个的儿子。
二叉树的一个性质是平均二叉树的深度要比节点个数N小得多;对于二叉查找树的深度平均值O(logN)

  • 二叉树的实现
struct BinaryNode
{
	Object element; //节点上的数据
	BinaryNode *left; //左儿子
	BinaryNode *right; //右儿子
}

4.3二叉查找树(binary search tree)

二叉查找树是两种集合类set和map实现的基础。
使得二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中所有项的值均小于X中的项,而它的右子树中所有项的值均大于X中的项。

注意:由于树的递归定义,通常是递归地编写这些操作的例程。因为二叉查找树的平均深度为O(logN),所以一般不必担心栈空间被用尽


待更新


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑字。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值