本篇文章给大家分享的是有关如何解析数据结构基础中的二叉树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
一棵树最上面的点称为根节点
,如果一个节点下面连接多个节点,那么该节点称为父节点
,下面的节点称为子节点
,二叉树的每一个节点最多有2个子节点,一个节点子节点的个数称为度
,二叉树每个节点的度只能是0,1,2中的一个,度为0的节点称为叶节点
。
二叉查找树是一种特殊的二叉树,其插入查找和删除都非常高效。
实现二叉查找树(BST)
TIP:BST
在插入数据时的逻辑,本身就是一种二分法思维。
树的遍历
TIP:树的遍历一般分为先序遍历,中序遍历,后序遍历,这里的序是指对于一个节点以及它的左子节点和右子节点的访问次序。具体使用场景的例子包括:先序遍历时,可以用于查看树结构,中序遍历,可以用于显示排序结果,后序遍历,可用于计算目录内文件占用的数据大小。
值的查找
3.1查找给定值
TIP:实际上就是二分法查找
3.2查找最小值
TIP:BST
中最左侧的节点。
3.3查找最大值
TIP:BST
中最右侧的节点。
删除节点
TIP:主要注意删除同时包含左右孩子节点的节点时逻辑,由BST
插入的规则可以知道,节点右子树中所有的节点都是大于当前节点值的,所以右子树中找出的最小值是大于当前节点左子树上所有值的,所以将其上浮至当前待删除节点位置,是不影响二叉树特性的。
计数
为BST
增加一个新方法,返回BST
中节点个数。
为BST
增加一个新方法,返回BST
中边的个数。
为BST
类增加一个新方法max( )
,返回最大值。
为BST
类增加一个新方法min( )
,返回最小值。
写一段程序,读入一个较大的文本文件,并将其中的单词保存到BST
中,显示每个单词出现的次数
在BST
构造函数中增加一个count
属性,在增删节点成功时修改count
值实现计数即可。
BST
边的数量比节点数量少1.
(略)
(略)
分解出的单词实际上就是字符串,字符串的比较实际上就是从第一位开始逐个比较ASCII码,用上面实现的BST
做练习就好,词频统计更多会用到Trie
树,也就是字典树,感兴趣的读者可以自行查阅。
【先序+中序】或者【后序+中序】都可以还原出唯一的二叉树,只根据【先序+后序】还原出的二叉树不是唯一的(感兴趣的可以看看这篇《 为什么只给出前序和后序,不能唯一确定一个二叉树 》),这里的二叉树指的是一般二叉树,不是二叉搜索树。或者相关的文章已经很多了,随手贴一篇带图的《由遍历序列还原二叉树结构》,理解难度并不高,同样建议自己编码实现一下。
二叉树是非常重要的数据结构,书中介绍的只是最基本的知识,更进一步的学习会涉及二叉树的数学特性,限制更多性能也更优的平衡二叉树,满二叉树,红黑树等等,以及相关的深度优先和广度优先算法。
以上就是如何解析数据结构基础中的二叉树,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。