大话数据结构EP6,树和二叉树的概念以及考研例题

相较于前面讲过的线性表,树不具有线性表唯一前驱唯一后继的特点。树除了根节点以外,其他节点都只有一个直接前驱,若干个直接后继。

树的递归定义

树是一种递归定义的,每个树可以被视作根-子树的集合体。
在这里插入图片描述
注意,树之间不能带回路的

树的基本概念

  1. 节点的度
    节点的度指的是指的是节点的子树
    如上图用红色标明的根,他的度是2
  2. 叶子节点
    度为0的节点
  3. 双亲节点与子节点
    如果一个根节点度不为0,那么他的下一级子树的根节点被称为子节点,相对于子节点,他被称为根节点。
  4. 兄弟节点
    具有相同双亲的子节点被称为兄弟节点。(亲兄弟)
  5. 树的度
    一颗树中,最大节点的度被称为树的度。
    上图中树的度是3
  6. 节点的层次
    从根节点开始,根节点是第一层,虽有依次递增
  7. 树的深度或高度
    树的最大层次
    空树的高度是0,一个节点都没有
  8. 森林
    多颗不相交的树构成森林

树的数据结构

直接定义法(已知数的度)

已知数的度的话,可以用一个指针数组来存放他的子树的指针。

struct TreeNode
{
	int data;
	struct TreeNode* childs[6]; //已知树的度是6
};

也可以动态申请指针数组,但是c语言里面很不方便操作,malloc

孩子兄弟表示法

这是存储树最优

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值