现在的位置: 首页 > 综合 > 正文

四叉树重新设计—–一切为了优化,代码未完成

2013年09月06日 ⁄ 综合 ⁄ 共 579字 ⁄ 字号 评论关闭

6月份的计划是了解B+树,红黑树的保持平衡的特征。后来连续几晚(发现工作周看书效率不高)看了B树的插入,删除。很是经典,开阔眼界。对数据结构设计的认识从原来的肤浅认识又多几点心得。先设计一个稳定的结构,能保证遍历效率逼近logn,然后其次是在插入,删除时的逻辑控制其保持原有的结构。不过写得出代码才算真正理解了。最后写了个四叉树,来总结最近一段认识,当然,对数据结构和算法的应用和构造提升到面向对象的层次,还是从项目中前辈们写的代码领悟到的。

 

以下是AS3写的未完成的四叉树代码地址,以及图示。

 http://xuexuankr.download.csdn.net/

 

 

原来结构有两个问题:1,在元素密集区会导致整颗树不平衡,降低遍历效率。2,元素重叠问题。

而设计的这个,见下图,主要提供节点寻找的是5号节点,5号节点才是真正的四叉树,而其他号的节点是作为降低树的深度之用,而存储节点的地方和之前设计的那个不同在于,存储元素的节点只是叶节点,而非中间这些,中间只提供寻路作用和分支作用。这样在最后,存储节点的结构就是一个链表,同时也解决了元素重叠问题,因为有Z序存在。这样也就解决之前那颗树的弊端。不过,代码还没完成,效率有待考证。

 

其中,主要思想来源于以下这个矩阵,从云风记录的四叉树中学到的。

1|6|2

-------

7|5|8

-------

3|9|4

 

 

抱歉!评论已关闭.