WEB开发网
开发学院软件开发VC 写个过河算法 阅读

写个过河算法

 2007-03-15 21:55:34 来源:WEB开发网   
核心提示: 就是要这样从1走到20的样子,其实都在CArray<Move, Move> m_MoveAll;里面了数组里记录了1-》2,写个过河算法(3),2-》4,2-》8,(哧~哧~哈哈,这次的番茄被我接到了,8-》19,7-》100什么的我们要从1找到到20的路并且记录下结点怎么搞~

就是要这样从1走到20的样子,其实都在CArray<Move, Move> m_MoveAll;里面了

数组里记录了1-》2,2-》4,2-》8,8-》19,7-》100什么的我们要从1找到到20的路并且记录下结点

怎么搞~,我不会,(啪,又一个鸡蛋飞了过来。靠~还来,你等我说完呀,我可以很负责任告诉你,大健很生气,后果很严重)。

开始我也不记得怎么搞了,突然一个声音从天上传过来:你要脑袋干什么,你要那么多书干什么。

我一下厕所顿开,回家翻书……才看了一点,我想到了,我可以来个深度编历。从1开始找找到20就可以了。过程中记得要压栈和出栈。主要函数GORIVER,用一个CArray<int, int> Road模拟栈。void CRiverDlg::GoRiver(CArray<int,int>& p_Road, int Begin, int End, CArray<Move, Move>& p_MoveAll, BOOL *Visited)
{
  //深度遍历图形算法
  //此步不需要因为从设置了结束位以后就再也没调用GORIVER了
  //if(m_bEndFlag) return;
  int i;
  Visited[Begin] = TRUE;
  //讲其加入到走过的路中
  p_Road.Add(Begin);
  if(Begin == End)
  {
    m_bEndFlag = TRUE;
    MessageBox("找到了从起点通往终点道路");
    return;
  }
  
  for(i=0; i<p_MoveAll.GetSize(); i++)
  {
    if(p_MoveAll.GetAt(i).m_nNow == Begin)
    {
      if(Visited[p_MoveAll.GetAt(i).m_nNext] == FALSE)
      {
        GoRiver(p_Road,
                       p_MoveAll.GetAt(i).m_nNext,
                       End,
                       p_MoveAll,
                       Visited);
        if(m_bEndFlag) return;
      }
    }
  }
  //如果遍历完了还没找到说明此路不通出栈
  p_Road.RemoveAt(p_Road.GetSize()-1);
}   
看懂了吗?不懂~哈哈~回去看书把深度编历。现在知道后果很严重了吧。看死你。详细看看源代码吧。

题外

第2天MM还在玩这个游戏,还在叫到:昨天我才走过去了,今天走又不行了。我奸笑一声扑了过去,对不起,说错了应该是走了过去,寒一个~先叫MM随便走,MM走了N步以后,说实在想不到了,我说好我来,你走到任一步我都能帮你走到幸福的终点,因为你遇见了我了。然后我点开程序,GOGOGO,出来了,照着走哈哈~。搞定。MM很崇拜的看着我,说到:你真行。我眼睛红红的说,那是。其实心里寒了一把(昨天晚上熬了N长时间,就为了你这么一笑,不过有种东西叫成就感,我想你曾经体会到或者现在体会到过或者以后将会体会到)

题外的题外

我不想全写苦力式的业务了,才毕业时的激情都给搞没了。哪位大侠介绍份有前途又有钱途的编程职业给我,我253各位了。我很有潜力的。(哧~哧~哈哈,这次的番茄被我接到了,恩吃一口味道还不错,还有鸡蛋没)EMAIL:LWKL2008@YAHOO.COM.CN

上一页  1 2 3 

Tags:过河 算法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接