树、二叉树、堆

版权声明:本文为博主原创文章,欢迎转载。如有问题,欢迎指正。 https://blog.csdn.net/weixin_42172261/article/details/86915789

树: 树是一个无向无环图,n个节点正好有n-1条边,再任意加上一条边就可以构成回路。
一个结点的上一个结点是这个结点父结点,这个节点是子结点,并且父结点和子结点是相对的。特别的,如果一个结点没有父结点,那这个结点是根节点;一个结点没有子结点,它是叶节点。

二叉树: 如果一个树除了叶结点之外的其他每个结点都不多于两个子结点,那么这个树叫二叉树。
它有几个特点:如果一个结点是i,那么它的左子结点是2i,它的右子结点是2i+1。
从根结点为第一层,依次向下第二层、第三层…

满二叉树和完全二叉树: 如果除了叶结点外其他每个结点都有两个子节点,这个树就叫满二叉树。如果只有最右边几个结点有缺少外其他的节点都有两个子节点(如果一个结点存在右子结点,那就一定有左子结点的情况),它就叫完全二叉树。

最大堆与最小堆: 如果一个完全二叉树中任意父结点都比子结点存的数的数值小,这个完全二叉树又叫最小堆,此时这组数据的最小的数就在根节点上。反之,如果任意父结点都比子结点存的数的数值大,它就叫最大堆,此时最大的数在根节点上。

猜你喜欢

转载自blog.csdn.net/weixin_42172261/article/details/86915789