您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 操作系统课程设计 磁盘调度
  所属分类: C
  开发工具:
  文件大小: 73kb
  下载次数: 0
  上传时间: 2009-05-28
  提 供 者: grea****
 详细说明: #include #include using namespace std; typedef struct node { int data; struct node *next; }Node; void main() { void fcfs(Node *,int,int);//声明先来先服务函数FCFS void sstf(Node *,int,int);//声明最短寻道时间优先函数SSTF void scan(Node *,int,int);//声 明扫描函数SCAN void print(Node *); //输出链表函数 Node *head,*p,*q; //建立一个链表 int it,c=0,f,s; //c为链表长度,f是开始的磁道号,s是选择哪个算法 head=(Node *)malloc(sizeof(Node)); head->next=NULL; q=head; cout<<" /**************磁盘调度算法***************/"<>it; while(it!=0) { p=(Node *)malloc(sizeof(Node)); p->next=NULL; p->data=it; q->next=p; q=p; cin>>it; c++; } cout<<"从几号磁道开始:"; cin>>f; //f为磁道号 print(head); cout<<"链表长度为:"<>s; while(s!=0) { switch(s) { case 1:cout<<"你选择了:先来先服务算法FCFS"<>s; } } /***********************************************************/ void fcfs(Node *head,int c,int f)//先来先服务算法 { void print(Node *); Node *l;//*m,*n; float num=0; //num为平均寻道长度 l=head->next; for(int i=0;idata-f); f=l->data; l=l->next; } num=num/c; cout<<"先来先服务的寻道顺序是:"<next=NULL; m=l; q=head; p=head->next; s=head; r=head->next; float num=0; for(int i=0;idata); for(int j=0;jnext; q=q->next; if(abs(f-p->data)data); r=p; s=q; } } num+=abs(f-r->data); f=r->data; s->next=r->next; r->next=NULL; m->next=r; m=r; q=head; p=head->next; s=head; r=head->next; } num=num/c; cout<<"最短寻道时间优先顺序是:"<next=NULL; s=r; m=(Node *)malloc(sizeof(Node));//存放比开始磁道大的磁道 m->next=NULL; n=m; x=(Node *)malloc(sizeof(Node)); x->next=NULL; y=x; q=head; p=head->next; while(p->next!=NULL) { if(p->data-f>0) { q->next=p->next; p->next=NULL; n->next=p; n=p; p=q->next; i++; } else { q->next=p->next; p->next=NULL; s->next=p; s=p; p=q->next; j++; } } if(p->data>=f) { n->next=p; n=p; i++; } else { s->next=p; s=p; j++; } q=r; //对比开始磁道小的磁道排序 p=r->next; while(q->next->next!=NULL) { q=q->next; p=q->next; max=q->data; while(p->next!=NULL) { if(p->data>max) { max=p->data; p->data=q->data; q->data=max; max=q->data; } p=p->next; } if(p->data>max) { max=p->data; p->data=q->data; q->data=max; max=q->data; } } //print(r); q=m; p=m->next; while(q->next->next!=NULL) { q=q->next; p=q->next; min=q->data; while(p->next!=NULL) { if(p->datadata; p->data=q->data; q->data=min; min=q->data; } p=p->next; } if(p->datadata; p->data=q->data; q->data=min; min=q->data; } } //print(m); x=m; p->next=r->next; y=x->next; while(y->next!=NULL) { num+=abs(f-y->data); f=y->data; y=y->next; } num+=abs(f-y->data); num=num/c; cout<<"扫描算法的顺序是:"<next; cout<<"单链表显示:"; if(p==NULL) { cout<<"单链表为空:"; } else if(p->next==NULL) { cout<data; } else { while(p->next!=NULL) { cout<data<<"->"; p=p->next; } cout<data<
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: