IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 西农大 数据结构 习题 -> 正文阅读

[数据结构与算法]西农大 数据结构 习题

题目描述
患者到医院看病的顺序是:先排队等候,再看病治疗。要求设计一个算法,模拟病人等候就诊的过程。
其中:“病人到达”用命令“?A?”(或“?a?")表示,“护士让下一位就诊”用“?N?”(或"?n?")表示,“不再接收病人排队”用“?S?"(或“?s?")表示。
输入描述:
?A?(或?a?)?病历号
?N?(或?n?)?s?(或?s?)
?x?(其它字符)
输出描述:
病历号为×的病人就诊
若队列中有数据,输出队首元素,否则输出"无病人就诊”不再接收病人排队,并输出当前队列中所有病历号
输入命令不合法!

?

?

#include <iostream>
using namespace std;

template <class T>
struct LinkNode
{
	T data;
	LinkNode* link;
	LinkNode() {
		link = NULL;
	}
	LinkNode(const T& item) {
		data = item;
		link = NULL;
	}
};

template <class T>
class Queue {
private:
	LinkNode<T>* const first = new LinkNode<T>();
	int length;
public:
	Queue() {
		length = 0;
	}

	bool Insert(T& a) {
		LinkNode<T>* newnode = new LinkNode<T>(a);
		LinkNode<T>* current = first;
		for (int i = 1; i <= length; i++) {
			current = current->link;
		}
		current->link = newnode;
		length++;
		cout << "病历号为" << current->link->data << "的患者就诊" << endl;
		return true;
	}

	bool Insert2(T& a) {
		LinkNode<T>* newnode = new LinkNode<T>(a);
		LinkNode<T>* current = first;
		for (int i = 1; i <= length; i++) {
			current = current->link;
		}
		current->link = newnode;
		length++;
		//cout << "病历号为" << current->link->data << "的患者就诊" << endl;
		return true;
	}

	bool Remove() {
		LinkNode<T>* current = first;
		if (current->link == NULL) {
			cout << "无病人就诊" << endl;
		}
		else {
			current = current->link;
			first->link = current->link;
			delete current;
			length--;
		}
		return true;
	}

	void Print() {
		LinkNode<T>* current = first;
		cout << "今天不再接收病人排队,下列排队的病人依次就诊:";
		for (int i = 1; i <= length; i++) {
			current = current->link;
			cout << current->data << " ";
		}
		cout << endl;
	}
};

int main() {
	char ch;
	int num;
	Queue<int> q1;
	cin >> ch;
	while (1) {
		switch (ch)
		{
		case 'A':
			cin >> num;
			q1.Insert(num);
			break;
		case 'a':
			cin >> num;
			q1.Insert2(num);
			break;
		case 'N':
		case 'n':
			q1.Remove();
			break;
		case 'S':
		case 's':
			q1.Print();
			return 0;
			break;
		default:
			cout << "输入命令不合法!" << endl;
			cin >> ch;
			continue;
			break;
		}
		cin >> ch;
	}
}

样例太少,无法通过oj

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:43:47  更:2021-10-25 12:46:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:26:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码