zoukankan      html  css  js  c++  java
  • 数据结构与算法之编写病人看病系统模拟程序(队列)

    这种方式是用对列编写病人看病模拟程序
    对顺序队不熟悉的可以先学习下面链接的文章
    这篇文章是链队的代码,虽然代码不同但逻辑思想是相同的

    链队代码,点开即可

    #include <iostream>
    #include<stdio.h>
    #include <malloc.h>
    #define MaxSize 100
    using namespace std;
    typedef int ElemType;
    typedef struct
    {
    	ElemType data[MaxSize];
    	int front,rear;		
    } SqQueue;
    
    
    
    
    void InitQueue(SqQueue *&q)
    {	q=(SqQueue *)malloc (sizeof(SqQueue));
    	q->front=q->rear=0;
    }
    
    
    
    
    
    
    void DestroyQueue(SqQueue *&q)
    {
    	free(q);
    }
    
    
    
    
    bool QueueEmpty(SqQueue *q)
    {
    	return(q->front==q->rear);
    }
    
    
    
    bool enQueue(SqQueue *&q,ElemType e)
    {	if ((q->rear+1)%MaxSize==q->front)	
    		return false;
    	q->rear=(q->rear+1)%MaxSize;
    	q->data[q->rear]=e;
    	return true;
    }
    
    
    
    
    bool deQueue(SqQueue *&q,ElemType &e)
    {	if (q->front==q->rear)	
    		return false;
    	q->front=(q->front+1)%MaxSize;
    	e=q->data[q->front];
    	return true;
    }
    
    
    
    
    
    
    int main()
    {
        SqQueue *q;
        InitQueue(q);
        ElemType n,a=2019101701,b=2019101702,c=2019101703,d=2019101704;
        enQueue(q,a);
        enQueue(q,b);
        enQueue(q,c);
        enQueue(q,d); 
        cout<<"请输入排队病人的病历号:"; 
        cin>>n;
        cout<<"把病人的病历号加入到队列中(入队)"<<endl; 
        enQueue(q,n);
        printf("病历号为%d的病人已经入队
    ",n); 
        cout<<"病历号最前的排队病人现在就诊并将其删除(出队)。。。"<<endl; 
        deQueue(q,a);
        cout<<a<<endl;
        cout<<"从队首到队尾列出所有的排队病人病历号(依次出队)"<<endl; 
        deQueue(q,b);
        cout<<b<<endl;
        deQueue(q,c);
        cout<<c<<endl;
        deQueue(q,d);
        cout<<d<<endl;
        deQueue(q,n);
        cout<<n<<endl;
        cout<<"不再排队,余下依次就诊并列出所有的排队病人的病历号"<<endl;
        deQueue(q,b);
        cout<<b<<endl;
        deQueue(q,c);
        cout<<c<<endl;
        deQueue(q,d);
        cout<<d<<endl;
        deQueue(q,n);
        cout<<n<<endl;
        cout<<"下班了(释放队列)" <<endl;
    	DestroyQueue(q); 
    }
    

    其中链队与顺序队的主要区别就是对数据的查找与插入和删除操作不同,主要原因是链式结构需要不能够随机存储。因此链式结构查找耗时较多,而顺序结构插入与删除复杂度较高,各有千秋。因此,在分体题目中,选择合适的数据结构最重要。

  • 相关阅读:
    Grunt 实现浏览器实时刷新
    Node环境搭建
    前端项目三方库管理
    Node项目包管理器
    前端开发利器
    面向对象目录
    Java 面向对象(十四)
    Java 面向对象(十三)
    Java 面向对象(十二)
    Java 面向对象(十)
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832329.html
Copyright © 2011-2022 走看看