栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

深度优先搜索中最常见 的距离就是走迷宫的示例:
假设一个人在走迷宫,这个人若是沿着其左手边一直走下去,便可走出迷宫。在迷宫的交叉口。这个人同时又两个选择,分别是走与不走这就类似于选择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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/867443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号