二叉树删除方法UML——第一个博客(自写的作业)

不知道哪里添加附件,想上传UML的pdf。

打开ProcessOn官网,注册账号后即可在线画UML图。根据删除的步骤,删除的节点总的分三种情况:叶节点、有一个孩子的节点和有两个节点的孩子。类图首先用一个黑色顶点表示进入删除方法,结尾处也要用一个黑色顶点表示结束。用圆角矩形表示当前活动状态或每个步骤,在箭头上写上当前步骤的结果。①首先查找要删除的节点,可能找不到则输出错误提示,若是找到了就判断节点类型。节点类型有前面说的三种情况,首先是简单的叶子节点,叶子节点可能是三种情况中的一种,根,左孩子或右孩子,如果是直接把根设为null,因为此时二叉树只剩下一个节点(root),如果是左孩子就把它父节点的左孩子设为null,右孩子就把它父节点的右孩子设为null,以上叶节点分析完成,在每种情况的活动状态后拉一条线连接到结尾处的黑色顶点表示叶节点分析结束。②接着分析只有一个孩子的节点的类型,可能有两种情况可再分,分别是只有一个左孩子或者只有一个右孩子,每种结果都能再有三种情况考虑,这个节点是作为根,左孩子或是右孩子。对于只有一个孩子的节点,如果它是根,直接把根设为节点的左孩子(或右孩子),如果它本身作为左孩子,则把它的父节点的左孩子设为本身节点的左孩子(或右孩子),本身作为右孩子,则把它父节点的右孩子设为本身节点的左孩子(或右孩子)。到这只有一个孩子的节点分析完成,然后把上述提到的6种情况的活动状态(圆角矩形)连接到结尾处的黑色顶点表示只有一个孩子的情况分析结束。③最后是有两个孩子的节点,下一步必须先找到它的后继者,然后再对后继者分析。后继者若是要删除节点的右子节点,依然可以对要删除的节点再分为根,左孩子和右孩子。如果是根就把后继者替换掉根节点,然后把后继者的左孩子连接到原来根的左孩子的地方;如果要删除的节点是作为左孩子(或右孩子),就把它的父节点的左孩子(或右孩子)用后继者代替,然后把后继者的左孩子接上要删除节点的左孩子。这是后继者为右子节点的情况。若后继者不是右子节点,那么这时候的状态是后继者父节点的左孩子要接到后继者的右孩子(仅剩下的),然后断开后继者,使后继者的右孩子接到被删除节点的右孩子,也就是代替被删除节点。接着依然可以对被删除节点做三种情况考虑,根、左孩子或者右孩子,如果被删除节点是根,就把后继者替代根的位置,再把后继者的左孩子位置接到根的左孩子位置;如果被删除节点是左孩子(或右孩子),则把被删除节点的父节点的左孩子(或右孩子)替换为后继者,然后把后继者的左孩子接上被删除节点的左孩子的位置。以上分析完被删除节点有两个孩子的6种情况。综上总分的三种情况,可以细分为15种不同的情况,也就是有15条长黑箭头从各种状态连接到结尾处的黑色结束点。UML见实验结果部分。

file:///C:/Users/SKYTR/Desktop/二叉树删除方法UML图.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值