CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

(高难度问题)火车路线路查询的程序。

楼主jkjava(hhuuo)2005-01-20 18:34:10 在 .NET技术 / ASP.NET 提问

 
  表结构:  
        YunXingQuFrom                                 LuXian  
                北京                           北京,徐州,蚌埠,南京,南京  
                重庆                     重庆,重庆北,徐州,渠县,达州,宣汉,万源  
          。。。。。                           。。。。   。。。。。。。。  
   
   
   
  比如我要从   北京   到   达州   ,可以从   徐州   转车。  
  这个程序好像好难写??? 问题点数:100、回复次数:10Top

1 楼Johnyin(境由心生...)回复于 2005-01-20 18:37:34 得分 5

网状结构的遍历。  
  查查算法书吧,应该有介绍。Top

2 楼AllenTing(今天你GC了吗???)回复于 2005-01-20 18:41:54 得分 5

学习ingTop

3 楼jkjava(hhuuo)回复于 2005-01-20 18:48:25 得分 0

有代码吗???还不及看书啦。Top

4 楼tbmlh(成林)回复于 2005-01-20 19:01:26 得分 5

学习。Top

5 楼Johnyin(境由心生...)回复于 2005-01-20 19:24:28 得分 40

代码没有。  
  说个大概思路:  
  先一个数组将所有站名存起来  
  arrName[n]="北京"   ......  
  然后用另一数组存关系:一站一站地存。    
  比如arrName[0]="北京",arrName[1]="徐州"  
  那么:  
  arrRelation[0][1]=1       arrRelation[1][0]=1    
  ......  
   
  然后就是找路的算法了。  
  function   FindWay(int   iEnter,int   iOut)  
  {  
        //先取出   arrRelation[iEnter][]=1   的  
        //再循环   判断里面有没有   iOut(第二维的维数)  
        //如果没有就继续深入找将   第二维换成第一维,再循环......  
  }  
  临时想的啊。可能不是最优。Top

6 楼webserv2(New life New job)回复于 2005-01-20 19:53:31 得分 5

网状结构的遍历  
   
  算法问题好像很难Top

7 楼webserv2(New life New job)回复于 2005-01-20 19:54:07 得分 5

关键是得出最优的结果!Top

8 楼xinyu1225(天道酬勤)回复于 2005-01-20 20:01:35 得分 5

upTop

9 楼bitsbird(一瓢 在路上...)回复于 2005-01-20 20:13:11 得分 30

Declare   @temp   varchar(1000)  
  Declare   @Luxian   varchar(1000)  
  create   table     #t(city   varchar(30))    
  Select   top   1   @Luxian=Luxian   from   a   where   YunXingQuFrom='北京'  
  Declare   MyCur   Cursor   for    
  Select   LuXian   From   a   where   '达州'   in   LuXian  
  Open   MyCur  
  Fetch   next   from   MyCur   into   @temp  
  while   @@fetch_status=0  
  Begin  
  If   Exists   (Select   0   from   dbo.GetRecords(@Luxian),@temp))  
  begin  
  Insert   into   #t   (city)   select   *   from   dbo.GetRecords(@Luxian)  
  end  
  Fetch   next   from   MyCur   into   @temp  
  end  
  close   MyCur    
  deallocate   MyCur    
  select   *   from   #t    
   
   
  create   function   GetRecords(@str   varchar(8000))  
  returns   @Rec   table   (Record   varchar(40))  
  as  
  begin  
  declare   @s   varchar(8000)  
  declare   @r   varchar(40)  
  declare   @i   int  
  set   @s=@str  
  set   @i=CHARINDEX(',',@s)  
  while   @i>0  
  begin  
      set   @r=left(@s,@i-1)  
      if   not   exists   (select   *   from   @Rec   where   record=@R)  
      insert   @Rec   values   (@R)  
      set   @s=right(@s,len(@s)-@i)  
      set   @i=CHARINDEX(',',@s)  
  end  
  if   len(@s)>0  
      if   not   exists   (select   *   from   @Rec   where   record=@s)  
      insert   @Rec   values   (@s)  
   
  return  
  endTop

10 楼bitsbird(一瓢 在路上...)回复于 2005-01-20 20:18:42 得分 0

纠正一下  
  while   @@fetch_status=0  
  Begin  
  If   Exists   (Select   0   from   dbo.GetRecords(@Luxian)   where   Record   in   (@temp))  
  begin  
  Insert   into   #t   (city)   select   *   from   dbo.GetRecords(@Luxian)  
  end  
  Top

相关问题

  • 高难度,多表查询
  • 高难度的查询生成问题
  • 查询的高难度问题
  • 关于查询的高难度问题
  • 高难度sql 查询语句编写
  • sql 在两个表中的查询(高难度)
  • 一个高难度的查询统计,请大家帮帮忙!
  • 高难度的语句,关于sql查询
  • 对我来说这是个高难度的sql查询语句
  • 高难度查询需要斑竹支持

关键词

  • luxian
  • mycur
  • arrrelation
  • 徐州
  • arrname
  • getrecords
  • varchar
  • rec
  • 重庆
  • 北京

得分解答快速导航

  • 帖主:jkjava
  • Johnyin
  • AllenTing
  • tbmlh
  • Johnyin
  • webserv2
  • webserv2
  • xinyu1225
  • bitsbird

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo