泛型应用--图的深度(广度)优先遍历.成语接龙例子,含代码下载.

超级大笨狼 2007-11-05 04:19:01
加精

已知点集合 V={v1,v2,v3...vn}通过边连接起来

深度优先模型:
void Find1(v)
{
while(广度++)
{
Find1(新找到的点);//递归
}
}

可以看出他先把某一分支的第一分支一直搜到底,再搜第2分支的第一。。。。

广度优先模型:

声明全局点集合 R={r0}初始为出发节点。
void Find2(r)
{
while(广度++)
{
R.添加(新找到的点);
}
R.移除(旧的点);
while(新广度++)
{
Find2(r);//递归
}
}

以下边图为例:


1
/ \
2 3
/ \ |\
4 5 6 7

深度优先的执行顺序是:
1245367
广度优先是:
1234567

深度优先一般适合查找最长路径。成语接龙例子就是深度优先.
广度优先一般适合查找最短路径或者找到就退出,比较常用。

成语接龙的思路是:
0,分析全部成语,把头尾汉字用Unicode转成数字,再减去short.Maxvalue使其分布在short范围内,以节省内存.如果用string是比较废内存的.
1,利用泛型容器Dictionary查找Key速度是O(1)的哈希散列特点,建立两个字典,一个是全部成语,一个是头索引的多个成语.
2,输入一个成语后点按钮,把尾节点作为头,深度优先搜索.(排除环,检测有环复杂度O(1))
3,每一分钟检查一下是否有更长的龙出现.

代码下载

http://www.dullwolf.cn/Idiom.rar

本程序肯定有不足之处,希望大家友好的批评指正.
...全文
2358 148 打赏 收藏 转发到动态 举报
写回复
用AI写文章
148 条回复
切换为时间正序
请发表友善的回复…
发表回复
colman0808 2008-10-04
  • 打赏
  • 举报
回复
代码无法下载啊?能不能发到我的邮箱呢?
victoryhkm5@126.com
bb_chen 2008-07-18
  • 打赏
  • 举报
回复
Mark
超级大笨狼 2008-07-13
  • 打赏
  • 举报
回复
做了一个Ajax象棋,棋力还可以,一般业余水平的人下不过服务器,大家帮我测试一下.
http://www.dullwolf.cn/Chess/

我的MSN:panyuguang962@hotmail.com

希望能描述清楚Bug发生的状况,因为测试太辛苦了,很难重现和推断出问题所在,所以
对于提供有效的测试朋友,表示万分感谢,可以在调试基本稳定后赠送原代码.

谢谢!~~
nnoovvee 2008-06-05
  • 打赏
  • 举报
回复
学习
BIGBIRDINWOODS 2008-06-05
  • 打赏
  • 举报
回复
來看的
Janyue 2008-06-05
  • 打赏
  • 举报
回复
学习
sxmonsy 2008-06-05
  • 打赏
  • 举报
回复
好东西,收藏+学习
csharpstudy 2008-06-05
  • 打赏
  • 举报
回复
不错...收了.
amandag 2008-06-05
  • 打赏
  • 举报
回复
收藏
Deathsign 2008-06-05
  • 打赏
  • 举报
回复
很简单的算法。。。根本不用递归的···
myjce 2008-06-05
  • 打赏
  • 举报
回复
接分为先
ypacyhero 2008-06-05
  • 打赏
  • 举报
回复
看看
songyx0 2008-06-05
  • 打赏
  • 举报
回复
楼主行为值得鼓励,回帖的跟风尽量避免....
jin20000 2008-05-29
  • 打赏
  • 举报
回复
v+up
lyl1988 2008-05-14
  • 打赏
  • 举报
回复
UP+收藏
yunfeng007 2008-05-14
  • 打赏
  • 举报
回复
囧rz
gaoyipu 2008-05-14
  • 打赏
  • 举报
回复
收藏
nik_Amis 2008-05-14
  • 打赏
  • 举报
回复
真有些有痔之士,楼主拿出来分享,这些技术有明白的有不明白的,道理还需要多说?还要遭你们非议?
你们说那些屁话有屁用,拿点真格的出来练练,说风凉话谁都会

加精没什么不妥,不妥的是你那棵幼稚的小心灵,自己回家去爱抚一下吧


hwk5 2008-05-13
  • 打赏
  • 举报
回复
mark
chenzhifeng 2008-05-09
  • 打赏
  • 举报
回复
mark
加载更多回复(128)

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧