数据结构课程设计题目十二_计算机学院学生会的打印机(优先队列)

本文出自:http://blog.csdn.net/svitter

题目12:计算机学院学生会的打印机(优先队列)

小明抱怨学生会的打印机不符合FIFO的原则,看到很多在他后面来打印的同学比他先打印出来。五分钟前,小明的文件就是下一个候选的,如今小明的文件又排到了后面。学生会的同学给小明解释说,学生会的打印机不是採用传统的队列方式,而是採用一种自定义的优先队列方式:每一个要打印的文件被赋予了一个从19的优先级(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.cpp**  Created on: 2014Äê6ÔÂ15ÈÕ*      Author: vit*/#include <stdio.h>
#include "Queue.h"Queue::Queue() {// TODO Auto-generated constructor stubthis->front = this->rear = NULL;
}bool Queue::IsEmpty(){return this->rear == NULL;
}void Queue::push(Node *n){if(IsEmpty()){this->front = this->rear = n;}else{this->rear->next = n;this->rear = n;}return;
}void Queue::pop(){if(IsEmpty()){return;}Node *p = this->front;if(this->front == this->rear){p = this->front;this->front = this->rear = NULL;}else{p = this->front;this->front = this->front->next;}delete p;
}Node * Queue::top(){if(IsEmpty()){return NULL;}int value = this->front->value;Node *p = this->front;while(p->next != NULL){if(p->next->value <= value)p = p->next;else{this->rear->next = this->front;this->rear = p;this->front = p->next;p->next = NULL;p = this->front;value = p->value;}}return this->front;
}void Queue::check(int mval)
{Node *p = this->front;Node *temp;while(p->next != NULL){if(p->next->value < mval){temp = p->next;p->next = p->next->next;delete temp;}//p指向下一个节点p = p->next;}
}Queue::~Queue() {// TODO Auto-generated destructor stubwhile(!IsEmpty()){Node *temp;temp = this->front;this->front= this->front->next;delete temp;}
}



Queue.h:

/** Queue.h**  Created on: 2014年6月15日*      Author: vit*/#ifndef QUEUE_H_
#define QUEUE_H_class Node
{
public:int value;int num;Node *next;Node(){this->value = 0;this->num = 0;this->next = 0;}Node(int value, Node *next, int num){this->value = value;this->next = next;this->num = num;}
};class Queue
{
public:Queue();virtual ~Queue();//methodvoid push(Node *n);void pop();Node* top();bool IsEmpty();void check(int mval);//memberNode *front;Node *rear;
};
#endif /* QUEUE_H_ */


转载于:https://www.cnblogs.com/mfrbuaa/p/3849357.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gwt-2.8.2下载_GWT EJB3 Maven JBoss 5.1集成教程

gwt-2.8.2下载大家好&#xff0c; 在本文中&#xff0c;我们将演示如何正确集成GWT和EJB3 &#xff0c;以实现示例项目&#xff0c;使用maven进行构建并将其部署在JBoss 5.1应用服务器上。 实际上&#xff0c;您可以轻松地更改maven构建文件中的依赖关系&#xff0c;并将项目部…

linux blender骨骼绑定,在Linux系统中安装开源3D创建套件Blender的方法

Blender是免费的开源3D创建套件&#xff0c;它可在Linux系统中安装&#xff0c;可使用snap或flatpak命令安装Blender。简介Blender也称为开源3D建模软件&#xff0c;支持整个3D管道&#xff0c;建模&#xff0c;装配&#xff0c;动画&#xff0c;模拟&#xff0c;渲染&#xff…

配置源码管理工具(2)

源码管理是开发中最重要的事情之一&#xff0c;在vs.net里我们通常采用vss进行版本控制&#xff0c;在Eclipse里看帖子说用svn的比例很大&#xff0c;和IDE的集成性也很好。 1&#xff1a;服务器部署 下载地址是&#xff1a;http://subversion.apache.org/packages.html 下载的…

编写下载服务器。 第六部分:描述您发送的内容(内容类型等)

就HTTP而言&#xff0c;客户端下载的只是一堆字节。 但是&#xff0c;客户真的很想知道如何解释这些字节。 它是图像吗&#xff1f; 或者也许是ZIP文件&#xff1f; 本系列的最后一部分描述了如何向客户端提示她下载的内容。 设置 内容类型描述了要返回的资源的MIME类型 。 此…

linux中vi过滤,vim高级编辑(一)

------------------------------------------------------------------------------------------------本文内容学习自《使用vi编辑器&#xff0c; Lamb & Robbins编著》本文内容概要&#xff1a;set设置.vimrc配置vim下执行linux命令利用linux命令来编辑当前文件短语缩写本…

ruby中的self

self&#xff0c;自己&#xff0c;在ruby中表示当前对象或默认对象。程序执行的任一时刻&#xff0c;有且仅有一个self。 1.谁成为self&#xff0c;在什么位置成为self&#xff1f; 要知道哪个对象是self&#xff0c;就必须知道当前的上下文。上下文主要有顶层上下文&#xff0…

二手宏碁上网本装linux,Acer国内20日首发“上网本” 放弃Linux使用XP

据相关媒体报道 8月20日将在国内正式推出XP系统版的8.9英寸超便携笔记本电脑Aspire One&#xff0c;放弃使用Linux系统&#xff0c;硬件配置方面&#xff0c;除了依然采用英特尔Atom处理器之外&#xff0c;推出120GB传统硬盘和SSD两个版本。其中&#xff0c;XP系统 120G传统硬盘…

gwt-2.8.2下载_GWT 2 Spring 3 JPA 2 Hibernate 3.5教程

gwt-2.8.2下载本分步指南将介绍如何使用以下方法开发简单的Web应用程序 Google的网络工具包 &#xff08;GWT&#xff09;用于富客户端&#xff0c;而Spring作为后端服务器端框架。 该示例Web应用程序将提供对数据库执行CRUD&#xff08;创建检索更新删除&#xff09;操作的功能…

免费WiFi,仅仅为好久没联系的你们

昨日&#xff0c;认识五年的朋友搬来与我一起住了&#xff0c;说不上来&#xff0c;没有激动&#xff0c;仅仅是突然感觉生活又多了一点生机。兴致上来&#xff0c;晚上立马联系了已经近四个月没有联系的好友&#xff0c;才知道他们的生活也因这几个月发生了翻天覆地的变化。究…

c语言诡异程序,为什么C语言诡异离奇、缺陷重重,却获得了巨大的成功?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼已经使用了C语言十几年了&#xff0c;今天还在写C语言代码&#xff0c;C语言算是很多编程语言祖师爷了&#xff0c;已经取得了巨大的成功但还是很多人对于C语言存在很大的偏见&#xff0c;觉得C语言里面很多语法别扭&#xff0c;特…

translateZ 带来的Z-index 问题

今天遇到了一个问题&#xff0c;当一个3D变换元素translateZ这个属性的值为负值的时候&#xff0c;这个元素的Z-index就不会其作用&#xff0c;解决方法就是translateZ的值必须大于等于0才能让Z-index 起作用。 原因&#xff1a;太累了&#xff0c;想了想&#xff0c;translate…

五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc

c语言程序设计五猴分桃问题实验报告.doc 课程设计报告学院、系&#xff1a;吉林大学珠海学院计算机科学与技术系专业名称&#xff1a;软件工程课程设计科目C语言程序课程设计所在班级&#xff1a;10班学生学号&#xff1a;04121010学生姓名&#xff1a;赵学文指导教师&#xff…

菜根谭#161

道是一重公众物事&#xff0c;当随人而接引&#xff1b; 学是一个寻常家饭&#xff0c;当随事而警惕。转载于:https://www.cnblogs.com/star4knight/p/3862140.html

c语言100以内奇数的和为多少,编写C#程序,计算100以内所有奇数的和。谢谢了,大神帮忙啊...

编写C#程序&#xff0c;计算100以内所有奇数的和。谢谢了&#xff0c;大神帮忙啊以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;编写C#程序&#xff0c;计算100以内所有奇数的和。谢谢了&am…

监控系统的多协议直播(RTSP RTMP HTTP Live Streaming)

监控系统的多协议直播&#xff08;RTSP RTMP HTTP Live Streaming) 转载于:https://www.cnblogs.com/cl1024cl/p/6204791.html

阿里媒体转码公共参数_Xuggler教程:转码和媒体修改

阿里媒体转码公共参数注意&#xff1a;这是我们的“ Xuggler开发教程 ”系列的一部分。 在上一教程中&#xff0c;我对视频处理Xuggler进行了简短介绍 。 在这一部分中&#xff0c;我们将看到Xuggler和FFmpeg提供的一些更令人兴奋的功能&#xff0c;例如视频转码和媒体修改。 别…

52单片机iic读写c语言,如何52单片机的I2C读写24C08程序问题排查修改

------波形在一楼isoimg2130老师提供在单片机正常运行的程序&#xff1a;#include "reg52.h"#include "intrins.h"typedef unsigned char u8;sbit SCLP2^1; //I2C 时钟sbit SDAP2^2; …

怎么用c语言写一个贪吃蛇,刚学C语言,想写一个贪吃蛇的代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#include#includetypedef struct snake{int a;int b;struct snake *u;struct snake *n;}snake,*snake1;typedef struct food{int a;int b;}food;void main(){char c,c0 d;int i,j,k,n1,t,at;snake p,q;snake *dd,…

题目1065:输出梯形 (直接用循环控制输出)+题目1432:叠筐 (数组控制形状,最后输出数组)...

题目1065&#xff1a;输出梯形 &#xff08;直接用循环控制输出&#xff09; 样例输入&#xff1a; 4 样例输出&#xff1a; ****************** ********** 题目1432&#xff1a;叠筐 样例输入&#xff1a; …

毕业设计C语言网吧管理系统,毕业设计网吧管理系统.doc

毕业设计网吧管理系统.doc本科生毕业论文(设计)题目&#xff1a; 网吧管理系统――服务器子系统学 院 数学与计算机学院学科门类 理 科专 业 信息与计算科学学 号 024092553姓 名 陈绍指导教师 白云2007年5月25日网吧管理系统——服务器子系统摘 要随着上个世纪九十年代计算机网…