借用一下界面
来源:互联网 发布:思锐汽修软件 编辑:程序博客网 时间:2024/04/30 13:15
#include <iostream>#include <algorithm>#include <string>using namespace std;/***************************************************************************************************************** Question: 设计一个按优先数调度算法实现处理器调度的程序。 输入 (程序名+总运行时间+优先级),输入为 0 结束 InPut: P1 2 1 P2 3 5 P3 1 3 P4 2 4 P5 4 2 0*****************************************************************************************************************/typedef struct Node{string name;int leval; //优先数int time; //总运行时间int LeftTime; //剩余运行时间char now; //状态 R表示就绪态,E表示结束态Node *next;}*LinkList;LinkList creat() //创建链表{ LinkList l; l=new(Node); //当结构体里面有 string 字符串类型的数据时,必须用 new 来分配空间,不能用malloc. l->next=NULL; Node *r,*s; int flag=1; r=l; while(flag) { string Name; int Time,Leval; cin>>Name; if(Name != "0"){ cin>>Time>>Leval; //每次运行进程之前确定进程的 <优先级>和<运行时间> s=new(Node); s->name=Name; s->time=Time; s->leval=Leval; s->LeftTime=Time; //剩余运行时间初始化为总运行时间 s->now='R'; //进程状态初始化为 R (就绪状态) r->next=s; r=s; //cout<<"Name: "<<r->name<<" Time: "<<r->time<<" Leval: "<<r->leval<<endl; } else{ flag=0; r->next=NULL; } } return l;}void order(LinkList l) //根据优先级进行排序 思路:冒泡排序{ int length=0; Node *r,*L,*p; p=l; L=l; r=l; while(r->next != NULL){ r=r->next; length++; } r=L->next; for(int i = 1;i < length;i ++){ for(int j = 0;j <= length-i; j ++){ //cout<<"r->leval: "<<r->leval<<" L->next->leval: "<<L->next->leval<<endl; if(r->leval > L->next->leval){ p->next=r->next; r->next=L->next; L->next=r; r=p; //注意:找到符合条件的结点时。r-next 指向了 头结点->next。 //所以重新复制为: p结点(保存的r结点) } p=r; r=r->next; } L=L->next; //这两个语句是核心! r=L->next; }}void Output(LinkList l){ Node *r; r=l; cout<<"****************************************"<<endl; while(r->next != NULL){ r=r->next; cout<<"Name:"<<r->name<<" LeftTime:"<<r->LeftTime<<" Leval:"<<r->leval<<" Now:"<<r->now<<" *"<<endl; } cout<<"****************************************"<<endl; cout<<endl;}void Run(LinkList l){ Node *r; r=l; while(r->next != NULL && r->next->LeftTime != 0){ //好坑啊!这里!如果把两个判断语句调换顺序。程序就会崩。 //理由:程序会先判断 r->next->LeftTime != 0 这个语句。 //但是最后一个结点即 r->next->LeftTime 没有空间 //因此无法判断,程序崩溃。判断语句一定要可判断的语句才可以 cout<<"当前运行的程序名为:"<<r->next->name<<endl; r->next->leval --; r->next->LeftTime --; if(r->next->LeftTime == 0){ cout<<"该程序运行结束,退出进程"<<endl; r->next->now = 'E'; l->next=r->next->next; } cout<<"运行后的进程块为:"<<endl; order(l); //先排序,后输出! Output(l); r=l; }}int main(){LinkList L; //链表头指针,指向第一个结点cout<<"创建链表"<<endl; L=creat(); Output(L); cout<<"排序后的链表"<<endl; order(L); Output(L); cout<<"进程启动后的链表"<<endl; cout<<endl; Run(L); cout<<"所有程序运行结束!"<<endl; return 0;}
0 0
- 借用一下界面
- “谁有香水,借用一下。”
- 基础,借用一下偶像名字,嘿嘿
- 借用 FCKEditor 的文件上传/管理界面
- 借用 疯狂秀才 的页面,修改了一下自然框架后台管理的页面。
- 纪念一下,登陆界面“11111”验证码
- Dia 闪烁一下界面就不见了
- 来看一下MAC下面的QQ界面
- 做一下注册和登陆跳转界面
- 整理一下Unity界面的知识
- 借用这个空间
- MVC--借用学习
- 迷茫时就切两道--借用
- 借用别的数据库
- 关于AndroidStudio借用module
- 写个小程序QQMessage 熟悉一下界面控件的使用
- show一下刚做的系统登录界面
- 自己写的三维地球,show一下基本界面
- SQLHelper.cs
- ZeroMQ 的模式
- Is it possible to assign a UTexture2D to a material at runtime?
- iar无法编译
- WAY STUDIO 依路 舵机机器人 动作开发环境入门
- 借用一下界面
- 大数据、数据挖掘、机器学习与模式识别的关系
- logstash+es+kibana+redis搭建
- Tutorial: Import Data Into Neo4j
- iOS近场通信(蓝牙开发,WIFI开发)
- Android开发小结
- ZOJ1827博弈水题
- 如何在几何画板中定义坐标系
- 2016.4.8 LoggerFactory 的使用 生成日志信息