回溯算法解决背包问题_源代码.docVIP

  • 20
  • 0
  • 约2.49千字
  • 约 4页
  • 2018-01-10 发布于河南
  • 举报
回溯算法解决背包问题_源代码

templateclass Typew, class Typep class Knap//建立类knap { friend Typew Knapsack(Typew* ,Typew*,Typew,int );//友元函数的声明 private://私有成员声明 Typew Bound(int i); void Backtrack(int i); Typew c;//背包容量 int n; //物品数 Typew *w;//物品重量数组 Typew *p;//物品价值数组 Typew cw;//当前重量 Typew cp;//当前价值 Typew bestp;//当前最优值 }; 第二段 templateclass Typew, class Typep void KnapTypew, Typep::Backtrack(int i)//友元函数的定义 { if(in){//到达叶结点 bestp=cp; return;} if(cw+w[i]=c) //搜索左子树 { cw+=w[i]; cp+=p[i]; Backtrack(i+1); cw-=w[i]; cp-=p[i]; } if(Bound

文档评论(0)

1亿VIP精品文档

相关文档