小白科普丨何为树二叉树和森林
本文分享自华为云社区《树、二叉树和森林的表示及相互转换云社区华为云》,作者:11王。树的基本概念
树的定义:树是n(n0)个节点的有限集。当n0是,称为空树。树的特点:
(1)树的根没有前驱,除根外的其他节点有且仅有一个前驱;
(2)每个节点都可以有零个或多个后继。术语:
(1)节点的度:树中一个节点的孩子个数。
(2)树的度:树中节点的最大度。
(3)分支节点:度大于0的节点。
(4)叶子结点:度为0的节点。
(5)节点的深度:从根节点开始自顶向下逐层累加。
(6)节点的高度:从叶子节点开始自底向上逐层累加。
(7)树的高度:树中节点的最大层数。
(8)路径:两个节点之间所经过的节点序列。
(9)路径长度:路径上所经过的边的个数。
(10)森林:m(m0)棵互不相交的树的集合。二叉树的基本概念
二叉树的定义:一种特殊的树形结构,它的特点是每个节点至多有两颗子树(即二叉树中不存在度大于2的节点),并且二叉树的子树有左右之分,不能随意颠倒。几种特殊的二叉树:
(1)满二叉树:一棵高度为h,且含有2h1个节点的二叉树。
(2)完全二叉树:对应相同高度的满二叉树缺失最下层最右边的一些连续叶子结点。
(3)二叉排序树:左子树上所有节点的关键字都小于根节点的关键字;右子树上所有节点的关键字都大于根节点的关键字;左子树和右子树又各是一棵二叉排序树。(左根右)
(4)平衡二叉树:任一节点的左子树和右子树的深度之差不超过1的二叉排序树。二叉树的性质:
(1)二叉树的第i层上至多有2i1个节点;
(2)深度为h的二叉树至多有2k1个节点;
(3)对任何一个二叉树,若其终端节点树为n0,度为2的节点树为n2,则n0n21;
(4)具有n个节点的完全二叉树的深度为log2(n1)向上取整。
(5)对完全二叉树按从上到下、从左到右的顺序依次编号1,2,3,,则有以下关系:
a。当i1时,节点i的双亲的编号为i2;
b。当2in时,节点i的左孩子编号为2i,否则无左孩子;
c。当2i1n时,节点i的右孩子编号为2i1,否则无右孩子;
d。节点i所在层次为log2i1(向下取整)。存储结构二叉树的存储结构顺序存储结构:用一组地址连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储在某个数组下标为i1的分量中。(适合完全二叉树和满二叉树)链式存储结构:使用链表节点来存储二叉树中的每个节点。二叉链表包括数据域data、左指针域lchild和右指针域rchild三个域。typedefstructBiTNode{TElemTypedata;structBiTNodelchild,rchild;}BiTNode,BiTree;树的存储结构双亲表示法:用一组连续空间来存储树的每个结点,同时在每个结点中,附设一个指示器指示其双亲结点到链表中的位置。defineMAXTREESIZE100节点最大个数typedefstructPTNode{节点结构TElemTypedata;intparent;双亲位置域}PTNode;typedefstruct{树结构PTNodenodes〔MAXTREESIZE〕;introot,n;根的位置和节点数}PTree;孩子表示法:将没得节点的孩子节点都用单链表链接起来形成一个线性结构,此时n个节点就有n个孩子链表。defineMAXTREESIZE100节点最大个数typedefstructCTNode{孩子节点intchild;structCTNodenext;}ChildPtr;typedefstruct{TElemTypedata;ChildPtrfirstChild;孩子链表头指针}CTBox;typedefstruct{树结构CTBoxnodes〔MAXTREESIZE〕;introot,n;根的位置和节点数}CTree;孩子兄弟表示法(二叉树表示法):以二叉链表作为树的存储结构。每个节点包括三部分内容:节点值、指向第一个孩子结点的指针和指向下一个兄弟节点的指针。typedefstructCSNode{节点结构TElemTypedata;structCSNodefirstChild,nextSibling;}CSNode,CSTree;树、二叉树和森林的相互转换树转换为二叉树规则:每个节点左指针指向它的第一个孩子,右指针指向它在树中的相邻右兄弟。由于根节点没有兄弟,所以对应的二叉树没有右子树。画法:(1)在兄弟节点之间加一条线;(2)在每棵树根之间加一条线;(3)以第一棵根为轴心,顺时针旋转45度。森林转换为二叉树规则:先将森林中的每棵树转换为二叉树,由于任何一棵和树对应的二叉树的右子树为空,若把森林中第二棵树根视为第一棵树根的右兄弟,即将第二棵树对应的二叉树当做第一棵二叉树根的右子树,将第三棵树对应的二叉树当做第二棵二叉树根的右子树以此类推,即可将森林转换为二叉树。画法:(1)将森林中的每棵树转换为二叉树;(2)对每个节点,只保留它与第一个孩子的连线;(3)以根为轴心,顺时针旋转45度。二叉树转换为森林若二叉树非空,则二叉树的根及其左子树为第一棵树的二叉树形式,将根与右子树断开将右子树视为一棵新的二叉树,重复第一步。
点击下方,第一时间了解华为云新鲜技术
华为云博客大数据博客AI博客云计算博客开发者中心华为云
华为云开发者联盟
哈兰德我当然也想代表挪威征战世界杯,这是我的梦想近日在接受采访时,哈兰德表示他也希望能参加2022年世界杯,但也表示,没有世界杯任务,他可以利用这段时间给自己充充电。哈兰德说:首先,我当然希望我能参加世界杯。但是,这就……
性能测试场景设计之混合压测场景头条创作挑战赛混合场景设计不同数量的并发用户数,向不同接口发起请求。这种才是真正的混合场景,才是真正符合企业产品的实际情况使用函数助手setProperties设置……
老婆老婆我亲爱的老婆我想对你说我想对你说老婆老婆我亲爱的老婆老婆我想对你说我不否认你对家的付出比我多生活的点滴你多少抱怨过但我会用余生让你幸福快乐老婆我想对你说爱你的心我……
釜底抽薪,袁国勇院士一天之内将5篇争议文章撤回本文来源撤稿快讯官微如需了解更多精彩内容请联系近年来,由于各期刊、平台甚至编外学术人士纷纷加入对造假论文过街喊打队伍,以致于近期或早期发表的论文被主动或被动撤稿的情……
特斯拉召回24064辆Model3安全带存在隐患日前,电车之家获悉特斯拉在海外召回部分MODEL3车型,原因是安全带的固定器没有正确固定,用户需要到特斯拉服务中心进行修复。尽管特斯拉没有收到相关人员伤亡的反馈,但如果安全带固……
彩虹岛手游,2022爆火手游攻略好久不见兄弟们今天给大家介绍一款现在火爆的一款传奇手游《彩虹世界》彩虹岛,这款游戏凭着可爱的画风和好听的背景音乐火遍全网,曾一度获得过未成年成年的网络游戏,也就是那年夏天我成为……
在闽江滩涂上,让我又见到久违的童年(摄影随笔)中国地道风物1《美丽的闽江。滩涂》摄影:我是圆的2《美丽的闽江。滩涂》摄影:我是圆的3《美丽的闽江。滩涂。有天鹅》摄影:我是圆的在闽江滩涂上,让我又见到……
打爆追梦格林!约基奇261210!狂轰731710,库里沦为今天丹佛掘金客场挑战金州勇士,这也是上赛季季后赛首轮勇士淘汰掘金之后,两队再次相遇,可以说是仇人见面、分外眼红!不过这一次掘金阵容完整。第一场比赛掘金爆冷输给了爵士。本场……
秋季坚持4个护肤好习惯,皮肤不仅更滋润,还越来越年轻又到了换季的时候啦,各位姐妹平时洗完脸后,有没有觉得自己的皮肤越来越干燥紧绷呀?本身偏油的妹子,是不是觉得出油也变少了。那么你知道为什么秋天皮肤容易干燥紧绷吗?首先……
一场冬雨的遐思入夜,路过的晚风轻轻敲打着窗棂,透窗薄凉让人感受到丝丝的清冷。下雨了,窗外已是一片朦胧,满天飘飞的雨丝,雨滴滴答答落在玻璃上,我竟茫然了,不知道这洋洋洒洒的水滴,算什么呢?说它……
心情一不好就头疼胸闷?按按它,帮你缓解改善心情不好疾病来找情绪和我们的健康息息相关轻则会导致阵阵头痛重则可能会引起全身不舒服这种不舒服有什么办法可以缓解呢?刘军中国中医科学院广安门医……
旧住宅区改造配比提升,深圳城市更新保障房配建新规征求意见南都讯记者黄璐日前,深圳市规划和自然资源局官网发布通告:为落实深圳安居工程建设要求,多渠道增加保障性住房供应,公开征求《深圳市城市更新项目保障性住房配建规定(征求意见稿)》意见……