首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

PHP数据结构-完全二叉树、线索二叉树及树的顺序存储结构

完全二叉树、线索二叉树及树的顺序存储结构 在上篇文章中,我们学习了二叉树的基本链式结构以及建树和遍历相关的操作。今天我们学习的则是一些二叉树相关的概念以及二叉树的一种变形形式。...完全二叉树 什么叫完全二叉树呢?在说到完全二叉树之前,我们先说另外一个名词:“满二叉树”。像我们之前文章中演示过的那个二叉树,就是一颗“满二叉树”。...从定义中,我们可以看出,一颗“满二叉树”,必定是一颗“完全二叉树”,而一颗叶子结点都在一层的并且所有结点都有左右孩子结点的“完全二叉树”也就是一颗”满二叉树“。...为什么要讲”满二叉树“和”完全二叉树“呢?当然是为了我们接下来的内容做铺垫。因为”满二叉树“是最符合二叉树性质的一颗树。还记得树系列的第一篇文章中介绍过的二叉树的那五个性质吗?....php

41540

PHP数据结构(六) ——树与二叉树之概念及存储结构

PHP数据结构(六)——树与二叉树之概念及存储结构 (原创内容,转载请注明来源,谢谢) 一、树的含义 1、树为非线性结构,是n(n>=0)个节点的有限集,非空树有一个根节点,n>1时有m(m>0)个互不相交的子树...6、二叉树的存储结构 1)顺序结构:用一组连续的存储空间保存二叉树,按照完全二叉树的定义对每个节点进行存储,不是完全二叉树的则需要相应的位置留空。...3、对二叉树进行遍历,本质是将非线性结构的二叉树进行线性化,使每个节点至多一个前驱与一个后继。 4、用PHP遍历二叉树 二叉树结构如图: ? 代码执行结果如图: ? 源码如下: <?...php //线索二叉树 class Node{ public$left = null; public$right = null; public$data...数据结构(六) ——数组的相乘、广义表 PHP数据结构(五) ——数组的压缩与转置 PHP数据结构(四) ——队列 PHP数据结构(三)——运用栈实现括号匹配 PHP数据结构(二)——链式结构线性表 PHP

1.3K100

数据结构-二叉树(1)

二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树 注意:对于任意的二叉树都是由以下几种情况复合而成的: 2.2 特殊的二叉树: 1....满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。 2....完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。...对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树。...void HeapPop(HP* php) { assert(php); assert(php->size > 0); Swap(&php->a[0],&php->a[php->size - 1]

11210

【数据结构】二叉树---堆

二、二叉树 1.二叉树的概念 一棵二叉树是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。...从上图可以看出: 二叉树不存在度大于2的结点 二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树 注意:对于任意的二叉树都是由以下几种情况复合而成的: 2.特殊的二叉树二叉树:一个二叉树,如果每一个层的结点数都达到最大值...,则这个二叉树就是满二叉树。...也就是说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。 完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。...(HP* php); //释放内存 void HeapDestory(HP* php); 堆向下调整算法:现在我们给出一个数组,逻辑上看做一颗完全二叉树

7110

数据结构与算法(八)-二叉树(斜二叉树、满二叉树、完全二叉树、线索二叉树

(空二叉树),或由一个根节点和两颗互不相交的、分别称为根节点的左子树和右子树的二叉树组成;   这样看来,二叉树可以使用递归来创建。...特点: 每个节点最多有两个子节点; 二叉树中最大的度为2; 无论有几个分支,都需要区分是左子树还是右子树; 二、分类及实现 2.1 分类 斜二叉树:只有左子节点或只有右子节点的二叉树称为斜二叉树; ?...满二叉树特点: 叶子结点只能; 非叶子节点的结点的度为2; 完全二叉树:对一棵具有n个结点的二叉树按层序编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点位置完全相同; ?...完全二叉树特点: 叶子结点只能出现在最下两层; 最下层的叶子结点一定集中在左边并且连续; 若结点度为1,则该节点只有左子节点; 注:满二叉树一定是完全二叉树,而完全二叉树不一定是满二叉树; 线索二叉树...2.2 普通二叉树 2.2.1 二叉树的遍历分类   二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有节点,使得每个 节点被访问依次且仅被访问一次。

8.4K32

【数据结构】堆(万字详解)

二叉树的概念及结构 2.1 概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储结构 3....二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树 注意:对于任意的二叉树都是由以下几种情况复合而成的: 2.2 特殊的二叉树二叉树: 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树...也就是说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。 完全二叉树: 完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。...(HP* php) { assert(php); php->a = NULL; php->size = php->capacity = 0; } void HeapDestory(HP* php)...) { assert(php); Swap(&php->a[0], &php->a[php->size - 1]); --php->size; AdjustDown(php->a, php-

80200

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券