| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1249 人关注过本帖
标题:2W积分求一算法
取消只看楼主 加入收藏
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
 问题点数:0 回复次数:11 
2W积分求一算法
2W积分求一算法:

数据库中有一字段,标志着层次关系.第一层为1,它下面只能有两个数,为11,12,为第二层,第二层每个下面还是分别有两个,为111,112;121,122;每一层都可以有空缺,但是空缺的下面不能有数字了,求在同体系内从上到下,从左到右的第一个空缺位置的编号.比如下面图中的A位置.
要求算法简单.给出思路和算法.

数据库字段为
u_grade
1
11
12
121
1111
111
1112
一级一级传递,但是个点向下发展的速度可能不一样.比如可以11无下级但是12已经有了下级,这时候也能算出在该体系内从上到下从左到右的第一个空位的编号
.........




1
|
---------------------------------------
| |
11 12
| |
-------------------------- ------------------------
| | | |
111 112 121 122
| | | |
---------------- ------------ ----------- ---------------
| | | | | | | |
1111 1112 1121 1121 1211 A 1221 1222
| |
------- ------
| | |
11121 11211 11212
搜索更多相关主题的帖子: 2W积分 算法 数据库 空缺 字段 
2007-07-02 13:44
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
以下是引用半支烟在2007-7-2 14:04:06的发言:
asp我不懂,不过你这个题目想得到的结果就是A的编号吗,那么A层以后的数据就没用了是吧?

没有用,但是在推A的编号的时候可能有用


[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-02 14:30
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
谢谢大家先.
等待中

[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-02 16:26
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
以下是引用阳光白雪在2007-7-2 18:23:17的发言:
MicroSoft 别忘了给我2W积分,虽然积分米什么用,

不是这13个数,是13层.......
不好意思啊,这2W暂时不能给你......


[此贴子已经被作者于2007-7-3 12:14:01编辑过]


[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-03 09:38
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
刚才你说什么了?
来晚了,没看到......
你去水区开个帖子吧,不过只能给你5000,因为确实没达到我要的效果......

[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-03 10:57
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
以下是引用阳光白雪在2007-7-2 18:22:11的发言:

LZ说我的程序不对,就不能放这误导大家了,不好意思!


每一层都可以有空缺,但是空缺的下面不能有数字了,求在同体系内从上到下,从左到右的第一个空缺位置的编号.比如下面图中的A位置

我没说你的程序不对,我只是说没达到我的要求,不好意思啊......
不要小气......
小气鬼......



我给的那个是个形象的说明......


[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-03 11:00
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
以下是引用麻花疼在2007-7-3 11:25:33的发言:

怎么个搞法啊,说说看啊

我只说思路

1,把任意点看成是顶点,要查询这个点的等级,那么只要是他的体系内的所有的点的前N位(N为这个顶点的等级长度)都和这个顶点的等级号相同,按照这个生成SQL语句,让他们按照等级的长度排列,按照等级数字的大小排列,这样查出来的结果就是按照正常顺序排列的结果了
2,按照查出来的结果循环记录集的每一个点,查找比这个点的长度多1,而且前M位(当前记录等级的长度)和这个点的等级相同的点.因为每个点下边最多有两个点,所以如果查询记录数是0,则说明这个点下边没有记录,则该点的等级&"1"就是新增点的等级,跳出循环;如果查询记录数是1,则说明他底下已经有了1个点,则该点的等级&"2"就是新增点的等级,跳出循环;如果结果记录条数是2,则说明该点下级已经满了,继续查找下个点.

这样就能查出新增点的等级数了.

我的思路应该还算清晰,就是表达的可能很乱.


[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-03 11:54
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
以下是引用阳光白雪在2007-7-3 11:30:13的发言:

不是这13个数,是13层.......
不好意思啊,这2W暂时不能给你......
要是13个数,我一个一个算也能算出来了


不过我自己已经搞出来了.能算任意点下面的13层.



积分又没用,我要那做什么,再说也没达到你要的效果!

我晕,不是发现你是hxfly的马甲,我会把你骂的很惨,忽视我的劳动我就是不客气!

没忽视你的劳动啊,我感激没一个帮助我的人.谢谢了啊.....


[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-03 11:55
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
对不起,对不起啊.我改.......

[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-03 12:13
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
收藏
得分:0 
不过我确实没看明白
Dim dateArray(13)
dateArray(0) = 1
dateArray(1) = 11
dateArray(2) = 12
dateArray(3) = 111
dateArray(4) = 112
dateArray(5) = 121
dateArray(6) = 122
dateArray(7) = 1111
dateArray(8) = 1112
dateArray(9) = 1121
dateArray(10) = 1122
dateArray(11) = 1211
dateArray(12) = 1221
dateArray(13) = 1222

这个是干什么用的.

[glow=255,green,2]相信微软,相信我!~[/glow]
2007-07-03 12:16
快速回复:2W积分求一算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024660 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved