数据结构期末复习(ご)--二叉树,树,森林转换之间的转换

本文介绍了树和森林与二叉树之间的相互转换方法。详细讲述了如何通过添加相邻兄弟连线和调整孩子节点连线来实现树到二叉树的转换,以及如何通过还原孩子和兄弟关系完成二叉树到树或森林的逆向转换。

由森林(F)转换为二叉树(B)的规则:

  设森林F有子树T1,T2,T3……;其中第一棵树比较特殊,单独拿出,T1分为root,t1,t2,t3,……

   设二叉树B为LBT,ROOT,RBT.

  •     T1(ROOT)作为B(ROOT)
  •    T1的子树(t1,t2,t3,……,tm)作为LBT
  •     其余的T2,T3,……,Tm作为RBT

由二叉树转换为森林的规则:

  •     B(ROOT)作为T1(ROOT)
  •     LBT作为T1的子树( t1,t2,t3,……,tm)
  •     RBT作为其余的T2,T3,……,Tm

    1.由树转换为二叉树:

    •   树中所有相邻兄弟之间加一条连线
    •    树中的每个节点,只保留其与第一个孩子节点之间的连线,删去其与其他孩子节点之间的连线
    •    以树根节点为轴心,将整棵树顺时针旋转一定角度,使其更直观

    注意:和树对应的二叉树,其左,右子树的概念已经变为:左是孩子,右是兄弟。

    实例:


2.由森林转化为二叉树:

  •   将森林中的每棵树转换成相应的二叉树
  •   第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根节点作为前一棵二叉树根节点的右孩子,当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。

3.将二叉树转换为树或森林:

  •   若某节点是其双亲的左孩子,则把该节点的右孩子,右孩子的右孩子……都与该节点的双亲节点用线连起来
  •    删除原二叉树中所有双亲节点与右孩子节点的连线
  •    整理即可得到相应的树或森林


(1)非递归定义 (tree)是由n(n≥0)个结点组成的有限集合。n=0的称为空;n>0的T: ① 有且仅有一个结点n0,它没有前驱结点,只有后继结点。n0称作的根(root)结点。 ② 除结点外n0 , 其余的每一个结点都有且仅有一个直接前驱结点;有零个或多个直接后继结点。 (2)递归定义 一颗大分成几个大的分枝,每个大分枝再分成几个小分枝,小分枝再分成更小的分枝,… ,每个分枝也都是一颗,由此我们可以给出的递归定义。 (tree)是由n(n≥0)个结点组成的有限集合。n=0的称为空;n>0的T: ① 有且仅有一个结点n0,它没有前驱结点,只有后继结点。n0称作的根(root)结点。 ② 除根结点之外的其他结点分为m(m≥0)个互不相交的集合T0,T1,…,Tm-1,其中每个集合Ti(0≤i<m)本身又是一棵,称为根的子(subtree)。 2、掌握的各种术语: (1) 父母、孩子与兄弟结点 (2) 度 (3) 结点层次、的高度 (4) 边、路径 (5) 无序、有序 (6) 森林 3、二叉树的定义 二叉树(binary tree)是由n(n≥0)个结点组成的有限集合,此集合或者为空,或者由一个根结点加上两棵分别称为左、右子的,互不相交的二叉树组成。 二叉树可以为空集,因此根可以有空的左子或者右子,亦或者左、右子皆为空。 4、掌握二叉树的五个性质 5、二叉树的二叉链表存储。
(1)在给定5V直流电源电压的条件下设计一个可以容纳四组参赛者的抢答器。4名选手编号为:1,2,3,4。他们各有一个抢答按钮,按钮的编号与选手的编号对应,也分别为1,2,3,4。(2)设置一个系统清零和抢答控制开关(该开关由主持人控制),当开关被按下时,抢答开始(允许抢答),打开后抢答电路清零。(3)抢答器具有一个抢答信号的鉴别、锁存及显示功能。即有抢答信号输入(参赛者的开关中任意一个开关被按下)时,锁存相应的编号,并在LED数码管上显示出来,同时扬声器发生声响。此时再按其他任何一个抢答器开关均无效,优先抢答选手的编号一直保持不变,直到主持人将系统清除为止。(4)抢答器具有定时抢答的功能。当主持人按下开始按钮后,定时器开始倒计时,定时显示器显示倒计时间,若无人抢答,倒计时结束时,扬声器发生声响。参赛选手在设定时间内抢答有效,抢答成功,扬声器发生声响,同时定时器停止倒计时,抢答显示器上显示选手的编号,定时显示器上显示剩余抢答时间,并保持到主持人将系统清零为止(5)如果抢答定时已到,却没有选手抢答时,本次抢答无效。系统扬声器报警,并封锁输入编码电路,禁止选手超时后抢答,时间显示器显示0。(6)可用石英晶体振荡器或者555定时器产生频率为1Hz的脉冲信号,作为定时计数器的CP信号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值