qq_37887964 2017-04-03 15:11 采纳率: 0%
浏览 1099

求问数据结构基础循环队列问题,完善修改一下代码

编程建立循环队列存储结构,对排队买票过程进行模拟,要求程序在控制台屏幕上显示菜单:1.排队—输入新到达的买票人姓名,加入买票队列中。 2.售票—排队队列中最前面的人买票成功,显示信息并将其从队列中删除。3.—查看队列—从队首到队尾依次列出所有排队人姓名;4.—结束退出系统。 “排队”时,若队满,提示等待。 售票时,若队空,提示无人排队(售票失败)

#include <string>
using namespace std;


typedef string QElemType;
typedef int Status;


//--------------(队列的顺序存储结构)-------------  
typedef struct QUEUE
{
    QElemType *base;//初始化的动态分配存储空间  
int front;//头指针  
int rear;//尾指针  
}SqQueue;
Status InitQueue(SqQueue &Q)
{
    Q.base = (QElemType*)malloc(10*sizeof(QElemType));//初始化队列  
    if (!Q.base)
    {
        exit(0);
    }
    Q.rear  = Q.front = 0;
    return 1;
}
Status QueueEmpty(SqQueue Q)//判断队空
{
    if (Q.front == Q.rear)
    {
        return 1;
    }else
    {
        return  0;
    }
}
Status EnQueue(SqQueue &Q, QElemType e)//排队
{
    if ((Q.rear+1) % 10==Q.front)//如果队满  
    {
        return 0;
    }
    Q.base[Q.rear] = e;
    Q.rear = (Q.rear+1) %10;
    return 1;
}
Status Dequeue(SqQueue Q, QElemType &e)//售票
{
    if (Q.front == Q.rear)//队空   
    {
        return 0;
    }
    e = Q.base[Q.front];
    Q.front = (Q.front + 1) %100;

    return 1;
}
Status QueueTraverse(SqQueue Q, QElemType e)//查看队列
{
    int i;
    i = Q.front;
    while (i!= Q.rear)
    {   cout << Q.base[i];
        i = (i + 1) %10;
    }
    cout << endl;

    return 1;
}

int main()
{
    cout << "排队:1    售票:2    查看队列:3   结束:4" << endl;
    Status InitQueue();
    int a;
    loop:cin >> a;
    if (a == 1) {
        int b;
        string e;
        cin>>e;
        Status EnQueue(SqQueue &Q, QElemType e);
        b = EnQueue;
        if (0); cout<< "waiting" <<endl;
        goto loop;
    }
    if(a==2)
    {
        char e;
        Status Dequeue(SqQueue Q, QElemType &e);
        if (Dequeue==0); cout << "no man waiting!" << endl;
        if (Dequeue==1); cout << e << "购票成功" << endl;
        goto loop;
    }
    if (a == 3)
    {
        Status QueueTraverse();
        goto loop;

    }
    if (a == 4); return 0;
}

```不懂返回值。。

  • 写回答

1条回答

  • threenewbee 2017-04-03 15:34
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程