荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Version (Who makes history and why), 信区: Program
标 题: 一道算法题解法(1) (转载)
发信站: 荔园晨风BBS站 (Mon Mar 24 18:02:17 2003), 站内信件
用一个好一点的数据结构可以加快搜索效率。
这里可以定义一个以数值1为节点的三叉树。
①
┌─────┼─────┐
② ③ ⑤
┌─┼─┐ ┌─┼─┐ ┌─┼─┐
④ ⑥ ⑩ ⑥ ⑨ ⒂ ⑩ ⒂ (25)
用一个队列nodeQueue以升序存放该三叉树的所有孩子个数小于3的节点。
数的搜索过程就是该三叉树的生长过程。
树的生长规则是:
在链表中选择最小的三个节点分别乘上可能选择的最小数(2、3、5中的一个,需排除重
复使用因子的情况)做出比较,生成所得值最小且该节点的值大于上一个生成节点的值
的节点,对该节点孩子的成长情况做出标记。把新生成的结点放入队尾。
计数index++
在链表中选择最小的三个节点分别乘上可能选择的最小数(2、3、5中的一个,需排除重
复使用因子的情况)做出比较,生成所得值最小且该节点的值大于上一个生成节点的值
的节点,对该节点孩子的成长情况做出标记。把新生成的结点放入队尾。
计数index++
如果该节点的三个孩子都已生成完毕,把该节点出队(因为该节点必为队列中最小的点
)。
--
*
* *
* *
no more to say
★ just wish you ★
good luck
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.50]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店