分支限界法解背包问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 10:32:59
求C语言代码:分支限界法解背包问题

/*给点分吧,0分未免也太少了,下面是可以运行的代码*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAXSIZE 1000000
#define N 50
typedef struct
{
int element[MAXSIZE];
int front;
int rear;
} Queue;
int W[N], P[N];
int InitQueue(Queue *Q)
{
Q->front=Q->rear=0;
return 0;
}
int IsEmpty(Queue *Q)
{
return ((Q->front==Q->rear)?1:0);
}
int IsFull(Queue *Q)
{
return (((Q->rear+1)%MAXSIZE==Q->front)?1:0);
}
int EnterQueue(Queue *Q, int s)
{
if (IsFull(Q))//错误:内存空间不足!
return 0;
Q->element[Q->rear]=s;
Q->rear=(Q->rear+1)%MAXSIZE;
return 1;
}
int DelQueue(Queue *Q, int *x)
{
if (IsEmpty(Q)) //队列为空。
return 0;
*x=Q->element[Q->front];
Q->front=(Q->front+1)%MAXSIZE;
return 1;
}
CopyArray(int *src, int *dst, int n