设计一个程序,反映病人到医院看病、排队看医生的情况。 要求:采用链队列存储结构

设计一个程序,反映病人到医院看病、排队看医生的情况。
要求:采用链队列存储结构

参考:施老师等编著的《数据结构》

/*蓝多多 算法作业*/
#include "malloc.h"
#include"stdio.h"//蓝多多算法与数据结构实验四(二)链队
#include <iostream> 
#include<iomanip>
#include <string.h>
using namespace std;
typedef  char  QElemType;
typedef struct QNode {
    QElemType  data[10];
    struct QNode* next;
}Qnode, * QueuePtr;
typedef struct {
    QueuePtr front;
    QueuePtr rear;
}LinkQueue; //链队类型
int main()
{
    int choice, flag = 1;
    LinkQueue lq;
    QNode* s, * p;
    char name[15];
    lq.front = (QueuePtr)malloc(sizeof(QNode));//创建队列的头结点
    lq.front->next = NULL;
    lq.rear = lq.front;
    while (flag == 1)
    {
        cout << "请输入您的选择:1:排队 2:看医生 3:查看排队 0:下班   :" << endl;
        cin >>choice;
        switch (choice)//根据用户的不同选择,进行分类处理
        {  
        case 0:
            if (lq.front != lq.rear)
                cout << "您好,目前已经下班,请排队的患者改天再来就医。" << endl;
            flag = 0;
            break;
        case 1:
            cout << "请输入患者的姓名:" << endl;
            cin >> name;
            s = (QueuePtr)malloc(sizeof(QNode));//创建新节点
            strcpy_s(s->data, name);//将name copy 给s->data
            s->next = NULL;
            lq.rear->next = s; lq.rear = s;//插入节点到队尾
            break;
        case 2:
            if (lq.front == lq.rear)
                cout << "没有排队的患者" << endl;
            else//队列不为空时队头元素出队
            {
                s = lq.front->next;
                lq.front->next = s->next;
                if (lq.rear == s)
                    lq.rear = lq.front;//最后一个元素出队后队列为空
                cout << s->data << "看医生" << endl;
                free(s);
            }
        case 3:
            if (lq.front == lq.rear)
                cout << "没有排队的患者" << endl;
            else//队列不为空时依次输出队列中的元素
            {
                p = lq.front->next;
                cout << "排队的患者如下:" << endl;
                while (p != NULL)
                {
                    cout << p->data<<setw(6);
                    p = p->next;
                }
                cout << endl;
            }
        break;
        }
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43554335/article/details/105726868