数据结构6.1:树的基本概念

这篇具有很好参考价值的文章主要介绍了数据结构6.1:树的基本概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

树结构

为什么需要树这种数据结构

1,数组存储方式的分析

优点:通过索引访问元素,速度块,对于有序数组还可以用二分查找提高检索速度

缺点:如果要检索具体的某个值,或者需要增删(需要创建新数组)会比较麻烦

2,链式存储方式的分析

优点:增删效率优秀

缺点:检索效率低

3,树存储方式

能提高数据的存取效率,比如利用二叉排序树(Binary Sort Tree),既可以保证数据的检索速度,同时也能保证数据的插入删除和修改的速度.

以二叉排序树为例

[7,3,10,1,5,9,12]

数据结构6.1:树的基本概念,数据结构,算法

比父节点小的子节点放在左边,大的放在右边

当检索时,每次比较可以排除一半的元素,有较高的检索效率

当添加时,只需要按规则添加在对应的节点下即可

删除叶节点时,只需将其父节点的指针移除即可

树的常用术语

1,节点

2,根节点:最顶端的节点

3,父节点

4,子节点

5,叶节点:没有子节点的节点

6,节点的权(节点值):节点内存放的数据

7,路径:从根节点到节点的路线

8,层:处于同一个级别的节点为一层

9,子树:节点的所有后代节点构成该节点的子树

10,树的高度:即树的最大层

11,森林:多颗子树构成森林

二叉树

每个节点最多只能存在两个子节点的一种形式称为二叉树

二叉树的子节点分为左节点和右节点

二叉树概念

如果所有叶子节点都在最后一层,且节点总数为2^n-1(n为层数),则称为满二叉树

数据结构6.1:树的基本概念,数据结构,算法

如果二叉树的所有叶子节点都在最后一层或者倒数第二层,且最后一层的叶子节点在左侧连续,倒数第二层的叶子节点在右边连续,则称之为完全二叉树

数据结构6.1:树的基本概念,数据结构,算法

二叉树的遍历

二叉树的前序遍历

先输出父节点,再遍历左子树和右子树

二叉树的中序遍历

先遍历左子树,再输出父节点,再遍历右子树

二叉树的后序遍历

先遍历左子树,再遍历右子树,最后输出父节点

代码实现放在下一节文章来源地址https://www.toymoban.com/news/detail-848006.html

到了这里,关于数据结构6.1:树的基本概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包