热天中文网

第236章 声名鹊起(第2页)

天才一秒记住【热天中文网】地址:https://www.rtzw.net

如果一颗有根树每个节点的子树最多有n个,同时每个节点在其父节点中都有固定的可能可以留空的位置,这棵树叫做n叉树。

其中每个节点都可以有两个固定位置的子树的有根树叫做二叉树,二叉树中每个节点的两个子树分别叫做左子树和右子树,由于位置固定,没有左子树的时候也是可以有右子树的。

而“多叉树”

通常并不指n为任意值的n叉树,只是在和n叉树作比较的时候表示普通的有根树。

对于随机的树,高度的平均复杂度是o(logn),但是没有限制而且不随机的树高度也可以达到o(n),也就是除了叶节点都只有一个子树,或者常数个分支的情况。

所以树作为数据结构时通常需要另外进行平衡。

存储

对于普通的树,可以像图一样为每一个点存储一个边表(通常按顺序存和每一个点的关系的叫做邻接矩阵,存具体的边的叫做邻接表),或者直接存储所有边的边表等。

由于树是稀疏图,所以一般不用邻接矩阵存储。

对于有根树,如果用为每一个点储存一个边表的方法,由于每一棵树都只有一个父节点,所以通常指向父节点的边不存在这个表中。

同时如果子节点是没有顺序的,也是因为一个节点的子节点不会同时是其他节点的子节点,也可以把子节点直接当成存边的链表的节点,这时候每个节点只需要储存两个指针,所以这种存储方法有时候也会被叫做多叉树转二叉树。

对于子节点是有顺序的有根树,每条边都可以以固定的位置分别储存。

对于完全二叉树甚至能直接用一个数组访问所有节点,不另外储存边的信息。

有的树可以被设计成固定的从根节点开始访问,这时候可以不储存父节点。

同样的,有的树也可以省略子节点,例如并查集。

树的遍历

【领现金红包】看书即可领现金!

关注微信公众号【书友大本营】,现金点币等你拿!

对于一般的树,可以用和普通的图一样的方法遍历,比如深度优先搜索和宽度优先搜索。

如果和树的每个节点相邻的点有固定的顺序,深度优先搜索可以不储存当前点以外的任何信息,而且不用判重。

而在有根树中更方便,所以有根树中很少使用宽度优先搜索。

对于有根树的从根开始的深度优先搜索遍历,有三种特定的顺序:

前序遍历

先访问根节点,然后再访问所有的子树;

后序遍历

先访问子树,然后再访问根节点;

中序遍历

二叉树专用,先访问左子树,然后是根节点,最后是右子树。

注意对于每一种遍历,事实上都得先访问根节点,这里的遍历顺序是指处理节点中的数据的顺序。

已知中序遍历和任一其他遍历的情况下,可以还原一个二叉树。

一个直观的方法是按前序或者反转的后序插入一个按中序排序的搜索树。

已知前序和中序也可以还原一棵树,但是不能知道二叉树中一个节点唯一的子树是在左边还是右边。

事实上也可以把左右的顺序反过来。

这些由根开始的遍历方法也适用于特定的一个子树。

森林

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

[娱乐圈]姐妹,搞桃浦吗剑守长安我家老婆来自一千年前假面骑士之究极风暴国民闺女三岁半神医嫡女:皇叔别乱来仙药供应商穿进游戏后我狂暴升级带着药王空间穿到七零年年代弃妇:靠空间仓库致富玄德我家精灵真是太可爱了大唐首席女婿离婚后我被迫和前夫秀恩爱[娱乐圈]虐文小可怜是怪物母巢[快穿]凰女毒步天下退婚后我被皇帝宠成了妖后师兄他会读心豪门父母和顶流哥哥终于找到了我寒门千金妻贤夫跪一人之开始的道爷她病得不轻陈道玄冷嫣然渡劫八百年,我成了禁忌生命我要名垂千古