华夏财富网

网站首页 新知 > 正文

数据结构背包问题实验报告(数据结构背包问题)

2022-07-30 00:16:09 新知 来源:
导读 大家好,小福来为大家解答以上的问题。数据结构背包问题实验报告,数据结构背包问题这个很多人还不知道,现在让我们一起来看看吧!1、#includ...

大家好,小福来为大家解答以上的问题。数据结构背包问题实验报告,数据结构背包问题这个很多人还不知道,现在让我们一起来看看吧!

1、#include #define N 6int main(){//从N个背包(每个背包中w[k])中选取总重为T的背包,共有多少种选法        int w[N]={1,8,3,4,5,2};       //6个背包        int T=10;                              //总重        int k=0;                              int i=0;        int j=1;        struct stacks{                      //栈                int s[N];                int top;        } the_stack;       //初始化栈        for(i=0;i0&&k<=N){                        if(T>=w[k]){                                                    //符合条件的背包进栈                                the_stack.s[the_stack.top++]=k;                                T-=w[k];                        }                        k++;                                                                  //不符合则考察下一个背包                }                if(T==0){                                                                //找到一种方法,输出                        printf("------------Answer%d------------",j);                        for(i=0;i

2、则前一个入栈的背包出栈,继续考察下一个背包                the_stack.s[the_stack.top]=0;                T+=w[k];                k++;        }while(!(the_stack.top==0&&k==N));           //当栈空且k==N时,所有可能的组合都考察完毕。

3、推出循环}运行结果:------------Answer1------------0[1] 2[3] 3[4] 5[2]------------Answer2------------0[1] 3[4] 4[5]------------Answer3------------1[8] 5[2]------------Answer4------------2[3] 4[5] 5[2]。

本文到此分享完毕,希望对大家有所帮助。


版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。


标签:




热点推荐
热评文章
随机文章