1.一种二叉树数据结构的可视化演变方法,其特征在于,包括:获取在程序调试中单步执行前和后的两组二叉树结构数据;
对两组所述二叉树结构数据进行二叉树结构逻辑对比,获取两组所述二叉树结构数据的结构差异信息;
所述对两组所述二叉树结构数据进行二叉树结构逻辑对比,获取两组所述二叉树结构数据的结构差异信息,具体为:将单步执行前和后的两组所述二叉树结构数据转换成线性结构进行存储,分别记为L0和L1;
将存在于L1但不存在于L0的节点称为新增节点,将所述新增节点加入到L0,得到L2;
将存在于L2但不存在于L1的节点称为被移除节点,将所述被移除节点从L2中移除,得到L3;
将L1和L3中相同的节点进行节点间的比较,获取相同节点的差异信息,所述差异信息包括节点内指针域变化的信息、节点内数据域变化的信息、节点的外部指针域变化的信息以及泄漏树节点的信息;
所述结构差异信息包括新增节点信息、移除节点信息、节点内指针域变化的信息、节点内数据域变化的信息、节点的外部指针域变化的信息以及泄漏树节点的信息;
对两组所述二叉树结构数据进行结构布局对比,获取两组所述二叉树结构数据的布局差异信息;所述布局差异信息包括相同节点的坐标差异信息;
所述对两组所述二叉树结构数据进行结构布局对比,获取两组所述二叉树结构数据的布局差异信息,具体为:对单步执行后的二叉树结构数据进行二叉树布局,即分别对所述二叉树结构数据进行的树内节点间布局以及树间布局;
将二叉树布局后的两组所述二叉树结构数据中相同节点的坐标进行对比,记录相同节点的坐标差异信息;
将所述结构差异信息与所述布局差异信息转化成可视化演变操作序列;
将所述可视化演变操作序列中的每一个可视化演变操作解析成为特定的动画对象,对所述动画对象依次执行播放。
2.根据权利要求1所述的二叉树数据结构的可视化演变方法,其特征在于,在所述在程序调试中单步执行前和后的两组二叉树结构数据,之后还包括:对所述二叉树结构数据进行数据清洗和数据转换,分别得到新生成的二叉树结构数据T0和T1。
3.根据权利要求1所述的二叉树数据结构的可视化演变方法,其特征在于,所述泄漏树节点的检查方法为:若单步执行前二叉树中节点q的左孩子节点为节点p,经过单步执行后的q的左孩子节点变成了空;T(p)是以p为根的子树;
则当p是外部指针节点时,T(p)是一棵独立的树,此时没有产生泄漏树;
当p是汇点时,从当前的从父节点中选取p的主父节点,此时没有产生泄漏树;
当p是普通节点时,则从T(p)的子孙节点中查找是否存在所述外部指针节点或者所述汇点,若存在,则将以所述外部指针节点或者所述汇点为根的子树从T(p)中剔除,T(p)中剩余的部分为泄漏树。
4.根据权利要求1所述的二叉树数据结构的可视化演变方法,其特征在于,所述对所述二叉树结构数据进行的树内节点间布局以及树间布局,具体为:对所述二叉树结构数据中的每一棵树,从每一棵树的根节点开始,按各节点所在的层次,逐层进行节点间布局,所述节点间布局包括先由上至下进行向下排布,然后由下至上进行回推调整以消除节点位置重叠和保持对称性;
对所述二叉树结构数据进行树间布局包括:对所述二叉树结构数据进行树布局单元划分,若存在符合二叉树定义的普通树结构,则所述普通树结构单独成为一个树布局单元;若存在相连树结构,则将所述相连树结构结合成一个树布局单元;
从左到右保持预设的间距对所有所述树布局单元进行水平排布。