• 数据结构与算法之编写病人看病系统模拟程序(队列)


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

    链队代码,点开即可

    #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); 
    }
    

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

  • 相关阅读:
    实现JavaScript自定义函数的整合、链式调用及类的封装
    jQuery事件
    jQuery特效
    jQuery基础细节
    CSS3盒模型
    主流清浮动方法
    JavaScript 执行环境及作用域
    JavaScript 参数传递与变量复制
    PHP雪花背景验证码
    Linkis 0.9.2 版本发布
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832329.html
Copyright © 2020-2023  润新知