数据结构课程设计题目十二_计算机学院学生会的打印机(优先队列)
生活随笔
收集整理的這篇文章主要介紹了
数据结构课程设计题目十二_计算机学院学生会的打印机(优先队列)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文出自:http://blog.csdn.net/svitter
題目12:計算機學院學生會的打印機(優先隊列)
小明抱怨學生會的打印機不符合FIFO的原則,看到很多在他后面來打印的同學比他先打印出來。五分鐘前,小明的文件就是下一個候選的,如今小明的文件又排到了后面。學生會的同學給小明解釋說,學生會的打印機不是採用傳統的隊列方式,而是採用一種自定義的優先隊列方式:每一個要打印的文件被賦予了一個從1到9的優先級(9最高,1最低)。打印規定例如以下:
將隊列中要打印的文件f從隊列中拿出來;
假設在隊列中有優先級高于f的文件,則不打印f,將f排到隊列的最后;否則打印f。
小明知道打印新規以后,詢問他的文件到底多長時間可以打印出來,如果沒分文件打印的時間都是1分鐘,小明的文件在打印隊列中,而且不再有新的文件進入到打印隊列。請你幫助小明計算一下他還須要等多長時間。建議完畢人數1人。
加入了小元素的篩選代碼
PriorityQueue.cpp:
//============================================================================ // Name : PriorityQueue.cpp // Author : vit // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================#include <iostream> #include <stdio.h> #include "Queue.h" using namespace std;int main() {Queue *q;q = new Queue();int i;int n, m, val, num;int mval;Node *p;freopen("test", "r", stdin);while(~scanf("%d%d", &n, &m)){num = 1;for(i = 1; i <= n; i++){scanf("%d", &val);//printf("第%d號正在增加隊列...\n", i);p = new Node(val, NULL, i);if(i == m){mval = val;}q->push(p);}q->check(mval);//printf("隊列增加完畢。\n");while(!q->IsEmpty()){p = q->top();//printf("當前打印的是第%d號\n", p->num);if(p->num == m){printf("小明在第%d分鐘打印。\n", num);}q->pop();num++;}}return 0; }
Queue.cpp:
Queue.h:
轉載于:https://www.cnblogs.com/mfrbuaa/p/3849357.html
總結
以上是生活随笔為你收集整理的数据结构课程设计题目十二_计算机学院学生会的打印机(优先队列)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jqGrid Events
- 下一篇: 配置源码管理工具(2)