码迷,mamicode.com
首页 > 其他好文 > 详细

深度优先搜索(dfs)

时间:2017-04-10 00:15:55      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:length   遍历   int   comment   white   ati   set   blog   错误   

关于深度优先搜索的总结;

1 dfs 的基本结构: 

void dfs(int x){
if( x 超出边界){
return ;
}else{
for(遍历){
   if(未访问过){
    访问         ;     
    打上标记    ;
dfs(x + 1) ;
去掉标记    ; //极易忘记
   }
}
return; 
}

2 用dfs求全排列: 

本来好好的,结果sizeof(pointer) 就完蛋了。神秘的内存错误,而且还能正常的跑出一个不正常的结果出来。

 想了解sizeof这个小妖精的看这里    http://blog.csdn.net/wzy198852/article/details/7246836#comments

 

 

bool generatePermutations(int x){
int * flags = (int *)malloc(sizeof(int) * (x + 1));
int * ans =  (int *)malloc(sizeof(int) * (x + 1));
memset(flags, 0, sizeof(int) * (x + 1));          // wo bei ken de hao ku a 
memset(ans, 0, sizeof(int) * (x+1));
         dfs(flags, ans, 1, x+1);      

 

    return true;
}
void dfs(int* book, int* ans, int step, int length){
     if(step >= length){
      for(int i=1; i<length; ++i){
      cout << ans[i] << " ";
      }
      cout << endl;
      return ;
     }else{
      for(int i=1; i<length; ++i){
         if(book[i] == 0){
          ans[step] = i;
          book[i] = 1;
          dfs(book, ans, step+1, length);
          book[i] = 0;
         }
      }
     }   
return ; 

 3 我还要继续改下去

深度优先搜索(dfs)

标签:length   遍历   int   comment   white   ati   set   blog   错误   

原文地址:http://www.cnblogs.com/zzusunjs/p/6687128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!