| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 数据结构--树&二叉树 -> 正文阅读 |
|
[数据结构与算法]数据结构--树&二叉树 |
树? ? ? ? 树是一种数据结构,它是由有限节点组成一个具有层次关系的集合,类似一颗倒置的大树。 当节点数为 0 时,该树被称为空树。 树的节点定义:使用树节点储存的每一个数据元素都被称为节点。
度与层次以下图树为例: ? 节点
树
树的特点
二叉树????????二叉树是一种特殊的有序树,二叉树的度为2。二叉树的子节点又被分为:左孩子节和右孩子节点
二叉树的分类? ? ? ? 二叉树被分为:满二叉树和完全二叉树 满二叉树 ? ? ? ? 概述:当一颗二叉树除叶子节点外,其余所有节点的度都为2,那么这颗树就被称为满二叉树。如下图所示: ? 性质:
?完全二叉树 ? ? ? ?概述:完全二叉树是指当二叉树除过最后一层为满二叉树且最后一层的节点从左到右依次分布,如下图所示: 性质:
二叉树的储存? ? ? ? 二叉树的储存分为:链式储存和顺序储存 链式储存 ? ? ? ? 二叉树的链式储存与链表类似,依靠指针管理节点之间的关联,不需要连续的存储空间,每个节点包括3个属性:数据(Data)、左孩子节点指针(Left)、右孩子节点指针(Right) ?顺序储存 ? ? ? ? 二叉树的顺序储存,是指用顺序表(数组)储存,在顺序储存中,数组的每一个位置仅储存节点的数据,不需要储存节点的指针,而子节点的储存位置是根据完全二叉树的性质 “父节点为??时 ,左孩子节点为??,右孩子节点为??” 来确定下标的。例如:父节点在数组中的下标为,那么该节点的左孩子节点在数组中的下标就是?,而右孩子节点在数组中的下标为? ? ? ? ? 顺序储存更适用与储存完全二叉树,而不适应与储存普通二叉树,原因是储存完全二叉树会使二叉树中元素在数组中连续储存,而储存普通二叉树容易在数组中出现空隙,从而导致内存浪费。如图所示: ?二叉树的遍历?二叉树的遍历分为:前序遍历、中序遍历、右序遍历
以下图为例:
? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:25:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |