数据结构——树

1 篇文章 0 订阅
1 篇文章 0 订阅

树:

二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。

1.定义:树是一个n(n>=0)个结点的有序合集

2.树的关键词:

结点:指树中的一个元素;
结点的度:指结点拥有的子树的个数,二叉树的度不大于2;
数的度:指树中的最大结点度数;
叶子:度为0的结点,也称为终端结点;
高度:叶子节点的高度为1,根节点高度最高;
深度:根节点的深度为1,最下层的叶子节点深度最深;
层:根在第一层,以此类推。

一、二叉树

1.二叉树的定义:

由一个结点和两颗互不相交、分别称为这个根的左子树和右子树的二叉树构成

2.二叉树的性质:

1:二叉树的第i层上至多有2^(i-1)个结点;
2:深度为k的二叉树,至多有2^k-1个结点。

3.满二叉树和完全二叉树:

1.满二叉树:叶子节点一定要在最后一层,并且所有非叶子节点都存在左孩子和右孩子;
2.完全二叉树:从左到右、从上到下构建的二叉树。

4.二叉树的遍历:根在那个位置就是什么遍历

1:先序遍历:根->左子树->右子树(先序)
2:中序遍历:左子树->根->右子树(中序)
3:后序遍历:左子树->右子树->根(后序)

5.表示法:

1)双亲表示法(自下而上)
我们假设以一组连续空间存储树的结点,同时在每个结点中,附设一个指示器指示其双亲结点在数组中的位置。
每个结点:
【data】数据域,存储结点的数据信息。
【parent】 指针域,存储该结点的双亲在数组找那个的下标。
2)孩子表示法(比较浪费空间)
树中每个结点可能有多课子树,可以考虑用多重链表,即每个结点有多个指针域,其中每个指针指向一棵子树的根节点,这种方法叫做多重链表表示法。
每个结点:
【data】数据域,存储结点的数据信息。
【child1】【child2】【child3】…【childd】指针域,用来指向该结点的孩子结点。指针个数为树的度数
3)孩子兄弟表示法
结点结构:
【data】数据域,存储结点的数据信息。
【firstchild】指针域,存储该节点的第一个孩子结点存储地址
【rightsib】指针域,存储该节点的右兄弟结点的存储地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值