C语言算法—树、二叉树、堆

树:

首先我们先认识树是什么:
在这里插入图片描述
在这里插入图片描述
向上图这样的就叫做树

树的的特点:

1.一个树的任意两个结点有且仅有唯一的一条路径相通。
2.一个树如果有n个结点,那么它一定恰好有n-1条边
3.在一个树中加一条边会构成一个回路。

二叉树:

我们以这张图为例:
在这里插入图片描述
每个树都有一个特殊的结点我们称为根结点,例如上图的A。一个树有且仅有一个根节点。树中还有父结点和子结点,上图中的B就是D和E的父结点而D和E就是B的子结点,还有一个结点成为叶节点,所谓叶节点就是一个结点它没有子结点,例如上图的H、E、F、G。根节点我们也可以理解为没有父结点。

而二叉树是什么呢?
二叉树是一种特殊的树,它的特点是:每个结点最多有两个子结点。更加严格的递归定义是:二叉树要么为空,要么由根节点、左子树、右子树组成,而左子树和右子树分别是一颗二叉树。例如下图:
在这里插入图片描述
在这里插入图片描述

堆是什么呢?

在这里插入图片描述
堆是一种特殊的完全二叉树:所有的父结点都比子结点要小(圆圈内的是值)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值