【数据结构】数组二叉树?太牵强了吧,教材上都没有!

关于数组二叉树,我感觉这玩意太牵强了,对于比线性结构复杂的树,用数组这种线性存储方式本来就反直觉,然后我来说说我的思考吧:

数组二叉树怎么写?新建一个数组,添加节点时怎么加?直接从左到右添加数据。怎么删除节点?删除符合条件的数据,然后把后面的数据左移。可是这样的话,二叉树的整个被删除节点之后的位置都会变!

这时我想到可以用一个特殊值标记被删除的数据,然后增加数据时遍历数组,把数据添加到被标记的数据上,然后数组初始化的时候所有元素都是标记。可是这样为什么搞不成?因为我写的是泛型数组二叉树。这样的话每个数据类型都不一样,所以标记不可能统一。而且我试了试用数据类型的初始值,自定义数据类型还好说,可以用构造函数初始化对象的属性,可是如果是int,double这种内置类型,直接新建一个对象,它的数据是个随机数,完全不能当标记用!所以我就没用标记去写这个数组二叉树,只能向删除后树变化妥协了。

当然还有另一种只影响一个数据的方法,就是删除数据时,把最后一个数据移动到被删除位置上,然后currSize自减。

© 版权声明
THE END
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容