深度优先搜索(Depth first search)(C++版本迷宫示例)

深度优先搜索(Depth first search)(C++版本迷宫示例),第1张

class="superseo">深度优先搜索中最常见 的距离就是走迷宫的示例:
假设一个人在走迷宫,这个人若是沿着其左手边一直走下去,便可走出迷宫。在迷宫的交叉口。这个人同时又两个选择,分别是走与不走这就类似于选择0还是1.
我们以背包问题为例来编写一个DFS的c++版本代码
假设背包中的最大承重为N,目前有n件物体,每件物体的价值为v,求背包能装的最大价值是多少。
这便是一个简单的DFS的应用问题。

先编写DFS函数的代码:
void DFS(int index,int sumW, int sumC){
if (index ==n){
if (sumW <=V && sumC>Maxvalue) Maxvalue =sumC;
return;
}
//DFS的两条岔路口
DFS(index+1,sumW, sumC);
DFS(index+1,sumW+weigth[index], sumC+value[index]);
}
主函数
int main(){
cout <<“输出物体数量和包的最大重量:”;
cin>>n>>V;
for (int i=0;i
cout<<“输入第”< cin>>weigth[i]>>cost[i];
}
DFS(0,0,0)
cout<<“最大价值为:”<< Maxvalue< return0;
}
参考地址:
(1)深度优先搜索
https://www.zhihu.com/topic/20336539/top-answers
(2)广度优先搜索
https://zhuanlan.zhihu.com/p/141898546
https://blog.csdn.net/m0_56338164/article/details/117390675

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/875300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存