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

如题所述

第1个回答  2016-05-02
#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;
        }

    }

}

第2个回答  2016-05-01
初始化:d[1]...d[10]<-10;
入库:二分查找选定仓库,更新仓库容量(减),对仓库容量重新排序,标记该货物所在仓库;
出库:更新货物所在仓库容量(加),对仓库容量重新排序。本回答被提问者和网友采纳

数据结构的一道题
第一个问题:我的答案:正确理由:首先要明确建立“逆邻接表”的作用是为了方便计算入度。有向图每条弧对应唯一的弧头和弧尾。“逆邻接表”只是把“邻接表”中弧头和弧尾的次序换了,并不是一种新表,它和“邻接表”的唯一区别就是弧尾的nextarc指针指向弧头而已。所以节点数是相等的。(参考数据...

数据结构一道题
5 入栈,2入栈,4入栈,此时为 【524. s.pop(x)后,4出栈,此时就为【52 了,s.getTop(x)为获取栈顶元素。所以x就为2

数据结构c语言版一道题求解
include <stdio.h>#include <stdlib.h>typedef int DataType; struct SeqList{ int MAXNUM; \/* 顺序表中最大元素的个数*\/ int n; \/* 存放线性表中元素的个数n≤MAXNUM *\/ DataType *element; \/* element[0],element[1],…,element[n - 1]存放线性表中的元素 ...

数据结构数组的一道题,求过程
这种题目都可以自己总结个公式出来的 数据元素占k存储单元,首地址为a,则对于A[M][N]中元素A[i][j]的地址:对于以行序为主的存储方式:一行占N*k存储单元A[i][j]是在上面i个行的基础上加上第i+1行1列到j+1列的地址 A[i][j] =i*N*k + j*k + a 对于以列序为主的 同理有A...

数据结构的几道题
第一题:C 数据的逻辑结构分为:线性结构和非线性结构 数据的存储结构分为:顺序存储结构和链式存储结构 第二题:B 第四题:C我个人可以利用二路归并的排序方法,利用特殊情况L1(low1,high1),L2(low2,high2),且low2>hign1。第七题:A 若A是一个m*n的二维数组,数组下标从零开始,以列为主...

关于数据结构的一道题,请问以下题目中B和D选项有什么不同吗?我怎么觉得...
这个很简单,画个图看看就简单,数据结构对于是比较抽象的,需要画图加以形象。熟练后不用画图都行,因为脑子已经有图像了 看图应该懂了吧

数据结构的一道题:中缀表达式A-(B+C\/D)*E的后缀形式是什么?为什么?_百...
后缀表达式是把运算符号放在操作数后面 ABCD\/+E*- 计算方法是:1.把表达式中的每个操作都加括号,(A-((B+(C\/D))*E))2.把运算符号移到对应括号后面:(A((B(CD)\/)+)E)*)- 3.去掉括号:ABCD\/+E*-

这道关于《数据结构》的题该如何做呢?
如果a[mid]>x,那么可以将r移动到mid,如果a[mid]>=x,那么可以将l移动到mid。一直到区间大小为1,就是那个元素。其中l的初始值为1.r的初始值为n。上面只是查找方法,但是数组中的添加很慢。所以可以使用一种神奇的数据结构叫平衡树或者二叉搜索树。[但是一看就不是要问这个]。

(求助!)解两道数据结构题~!
1、由于对称性a85与a58是相同的,由于按照行存储,第一行存储10个;第二行存储9个,开始元素为 a22 ;第三行存储8个,开始元素为 a33 ;……;第五行开始元素为:a55,所以a58在地四个 故 总的存储为:10+9+8+7+4=38 2、由于3^5=243,3^6=243*3>244,所以为6层 ...

数据结构:请问这道题稀疏矩阵占用字节数为何是66?
三元组表示,一个元素需要的一个三元组,字节是2+2+2=6,10个元素需要60.,还有一个三元组表示矩阵的大小。一共是66

相似回答
大家正在搜