设为首页 加入收藏

TOP

栈与队列链式存储结构一货物上架问题(一)
2018-11-09 02:08:49 】 浏览:225
Tags:队列 链式 存储 结构 货物 上架 问题
#include <iostream>
#include<string.h>
static int n;                       //用于输入货架(货架即为栈)的大小
using namespace std;
 
//信息结构体
typedef struct /*Inform*/      //可以去掉Inform,在需要在结构体中定义结构体对象(指针)时不能去掉
{
    string name;
    int a;
}Inform;
 
//栈的*顺序*结构体
typedef struct Node
{
    Inform e;
    struct Node *next;
}StackNode,*LinkStack;
 
//队列*链式*结构体
typedef struct QNode
{
    Inform e;
    struct QNode *next;
}QNode,*QueuePtr;
 
//指向链式队列的头尾指针
typedef struct
{
    QueuePtr fro;
    QueuePtr rear;
}LinkQueue;
void Found1(LinkStack &s);      //货物上架
void Foundd(LinkQueue &d);      //创建顺序队列
void TurnsZ1(LinkStack &s1,LinkQueue d);      //对于前天未剩余(第一天)倒货
void TurnsZ2(LinkStack &s1,LinkStack s2,LinkStack s3);      //对于前天有剩余倒货
void Print(LinkStack s1);
int main()
{
    cout << "请输入每次上货的最大值\t";
    cin >> n;
    LinkStack s1,s2,s3;
    s1=s2=s3=NULL;      //是否有必要定义构造函数,即建立一个空栈  建立一个队列,使其头尾指针指向队列未存货物信息的空结点
    LinkQueue d;
    cout<<"第一天货物上架"<<endl;
    Found1(s1);      //输入货物信息
    Foundd(d);
    TurnsZ1(s1,d);
    Print(s1);
    cout<<"第二天货物上架"<<endl;
    if(s1==NULL)
    {
        Found1(s1);
        TurnsZ1(s1,d);
        Print(s1);
    }
    else
    {
        Found1(s2);
        TurnsZ2(s1,s2,s3);
        Print(s1);
    }
    return 0;
}
void Found1(LinkStack &s)
{
    s=NULL;      //定义一个空栈,s连接在p上,即p->next=NULL
    Inform i;
    i.name="";
    cout<<"输入break表示停止输入:"<<endl;
    while(1)
    {
       StackNode *p;
       p=new StackNode;
       cin>>i.name;
       if(i.name=="break")
        break;
       cin>>i.a;
       p->e=i;
       p->next=s;
       s=p;
    }
}
void Foundd(LinkQueue &q)
{
    q.fro=q.rear=new QNode;
   
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇BZOJ2763: [JLOI2011]飞行路线(分.. 下一篇C++雾中风景番外篇3:GDB与Valgri..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目