设为首页 加入收藏

TOP

C语言重解经典回溯算法案例-迷宫问题(三)
2018-03-02 06:57:26 】 浏览:1218
Tags:语言 经典 回溯 算法 案例 迷宫 问题
rk=trial(i, j, k, n, m, p, t);
              if (i==0&&j==0)
              {
                  current->sign=1;
              }
              else
              {
                  current->sign=psnewaf->sign+1;
              }
              current->next=NULL;
              psnewaf->next=current;
              current->before=psnewaf;      //(i,j)元作为节点压入栈
              psnewbe=psnewaf;
              psnewaf=current;
              *(t[i]+j)=1;    //(i,j)元标志为已走
          }
          else    //从k方向的下一方向开始为(i,j)元找到了可走方向trial(i, j, k, n, m, p, t)
          {
              psnewaf->mark=trial(i, j, k, n, m, p, t);    //相应更新(i,j)元节点中的方向
          }


          convert(&i, &j, trial(i, j, k, n, m, p, t));  //沿找到的方向从(i,j)元递进至下一单元
          k=0;  //为为下一单元从头开始寻找新方向作准备


          if (i==(m-1)&&j==(n-1))    //抵达迷宫出口
          {
              flag=1;      //标志变量置1


              current=(Record1 *) malloc(sizeof(Record1));
              current->x=i;
              current->y=j;
              current->sign=psnewaf->sign+1;      //建立并压入代表迷宫出口的尾节点
              current->next=NULL;
              psnewaf->next=current;
              current->before=psnewaf;


              Num++;            //找到路径数增1
              printf("\nThe %dnd possible route:\n", Num);  //输出路径序号
              current=head->next;
              while (current!=NULL)
              {
                  if (current->next!=NULL)
                  {
                      printf ("(%d,%d)->", current->x+1, current->y+1);        //输出找到的路径
                  }
                  else
                  {
                      printf ("(%d,%d) ", current->x+1, cu

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/11/11
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言编程构造拉丁方阵和正交拉丁.. 下一篇C语言实现N皇后问题非递归求解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目