数据结构病人就医系统
时间: 2023-12-11 07:04:11 浏览: 56
数据结构在病人就医系统中的应用主要是通过队列来实现病人的排队和就诊。具体来说,可以使用优先队列来实现按照优先级进行排队,也可以使用普通队列来实现先进先出的排队方式。以下是一个简单的病人就医系统的实现示例:
```c++
#include <iostream>
#include <queue>
#include <string>
using namespace std;
// 定义病人结构体
struct Patient {
string name; // 姓名
int priority; // 优先级
int id; // 病历号
};
// 定义比较函数,用于优先队列中的排序
struct ComparePatient {
bool operator()(const Patient& p1, const Patient& p2) {
// 优先级高的排在队列前面
if (p1.priority != p2.priority) {
return p1.priority > p2.priority;
}
// 同等优先级按照病历号排序
return p1.id > p2.id;
}
};
int main() {
// 定义优先队列
priority_queue<Patient, vector<Patient>, ComparePatient> q;
// 添加病人
q.push({"张三", 2, 1001});
q.push({"李四", 1, 1002});
q.push({"王五", 3, 1003});
q.push({"赵六", 2, 1004});
// 模拟就诊过程
while (!q.empty()) {
Patient p = q.top();
q.pop();
cout << "正在为病人 " << p.name << " 就诊..." << endl;
}
return 0;
}
```
在上面的示例中,我们使用了一个优先队列来存储病人信息,其中病人结构体包括姓名、优先级和病历号三个属性。我们还定义了一个比较函数,用于在优先队列中按照优先级和病历号进行排序。在主函数中,我们添加了几个病人,并模拟了病人就诊的过程,按照优先级和病历号的顺序依次处理每个病人。