数据结构:老师自己出的一道题。

 我来答
shenjian9619
2016-05-02 · TA获得超过1537个赞
知道小有建树答主
回答量:1007
采纳率:50%
帮助的人:574万
展开全部
#include<iostream>
#include<cmath>
#include<iomanip>
#define PI 3.14
using namespace std;
struct  warehouse
{
    int volume;
}warehouses[100];//保存仓库的容量的数据结构, 可以往里面加vector  保存仓库内的物品信息
void init(int n)
{
    warehouses[0].volume=0x3fffffff;  //下标0处设为极大值,n+1设置为极小值
    warehouses[n+1].volume=-1;
    for (int i=1;i<=n;i++)
    {
        warehouses[i].volume=10;
    }
}

int putin(int val,int n)//入库操作
{
    int minn=0;
    for (int i=1;i<=n;i++)
    {
        if (warehouses[i].volume-val>=0)
            if (warehouses[minn].volume>warehouses[i].volume)
                minn=i;
    }
    warehouses[minn].volume-=val;
    return minn;
}

int takeout(int val,int n)//出库操作
{
    int maxx=n+1;
    for (int i=1;i<=n;i++)
    {
        if (10-warehouses[i].volume-val>=0)
            if (warehouses[maxx].volume<warehouses[i].volume)
                maxx=i;
    }
    warehouses[maxx].volume+=val;
    return maxx;
}
int main()
{

    string str;
    int number,n;

    cout<<"please enter the number of warehouses (n<=100)"<<endl;
    cin>>n;
    init(n);
    while (cin>>str>>number)
    {
        if (str[0]=='o')
        {
            int tmp=takeout(number,n);
            cout<<"now the volume of warehouses "<<tmp<<" is "<<warehouses[tmp].volume<<endl;
        }
        else if (str[0]=='i')
        {
            int tmp=putin(number,n);
            cout<<"now the volume of warehouses "<<tmp<<" is "<<warehouses[tmp].volume<<endl;
        }

    }

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汤文惠5k
2016-05-01
知道答主
回答量:13
采纳率:0%
帮助的人:11.7万
展开全部
初始化:d[1]...d[10]<-10;
入库:二分查找选定仓库,更新仓库容量(减),对仓库容量重新排序,标记该货物所在仓库;
出库:更新货物所在仓库容量(加),对仓库容量重新排序。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式