模拟进程队列的管理(出入队)
更新时间:2023-05-15 23:50:01 阅读量: 实用文档 文档下载
- 队列模拟的管理算法推荐度:
- 相关推荐
操作系统实验,这都是我自己在学习OS原理(西安电子科技大学版)写的C语言作业,仅供学习,有些不足,仅供交流。操作系统这一共有6个算法,可查看我上传的文库
模拟进程队列的管理(出入队)(红色字体为再思考修改处)
操作系统实验一 实验题
(1)模拟双向链接队列的出入队
(2)要求:写出算法思想(程序流程图或自然语言描述) (3)提交形式:以学号+姓名创建一个文件夹,里面必须包含(源程序.CPP、可执行程序.exe、
算法思想文档.doc)
…
图2
操作系统实验,这都是我自己在学习OS原理(西安电子科技大学版)写的C语言作业,仅供学习,有些不足,仅供交流。操作系统这一共有6个算法,可查看我上传的文库
源代码为:
/******创建双向链表模拟进程队列管理(出入队)(有前后指针之分的带头结点),放在文件dlnkqueue.h 中*******/
typedef int datatype; typedef struct dlink_node { datatype info; struct dlink_node *llink,*rlink; }dnode;
typedef struct//封装带头结点前后指针 { dnode *front,*rear; }queue;
/********双向链表置空**********/
操作系统实验,这都是我自己在学习OS原理(西安电子科技大学版)写的C语言作业,仅供学习,有些不足,仅供交流。操作系统这一共有6个算法,可查看我上传的文库
queue *init() { queue *head; head=(queue*)malloc(sizeof(queue)); head->front=NULL; head->rear=NULL; return head; }
/*******输出双向链表元素**********/ void print(queue *head) { dnode *p; p=head->front; if(!p)printf("进程队列为空!\n"); else { printf("进程队列为:\n"); while(p) { printf("%d ",p->info);p=p->rlink; } } }
/*********查找元素X是否存在*********/ dnode *find(queue *head,datatype x) {
dnode *p=head->front; while(p&&p->info!=x) p=p->rlink; if(!p)return NULL; else return p; }
/***********在队尾插入**********/ queue *append(queue *head,datatype x) { dnode *p,*q; p=(dnode*)malloc(sizeof(dnode)); p->info=x; if(!head->front)//原进程中队列中无进程//
操作系统实验,这都是我自己在学习OS原理(西安电子科技大学版)写的C语言作业,仅供学习,有些不足,仅供交流。操作系统这一共有6个算法,可查看我上传的文库
{ head->front=head->rear=p; p->llink=NULL; p->rlink=NULL; } else//原进程队列中有进程// { q=head->front; while(q->rlink) q=q->rlink; p->rlink=q->rlink; p->llink=q; q->rlink=p; head->rear=p; } return head; }
/*********删除X********/
queue *dele(queue *head,datatype x) { dnode *q; q=find(head,x); if(!q) {printf("该进程%d找不到,无法出队!\n",x);return NULL;} else { //队首出队// if(q->llink==NULL) { head->front=q->rlink; q->rlink->llink=NULL; } //队尾出队//
else if(q->rlink==NULL) { head->rear=q->llink; q->llink->rlink=NULL; }
操作系统实验,这都是我自己在学习OS原理(西安电子科技大学版)写的C语言作业,仅供学习,有些不足,仅供交流。操作系统这一共有6个算法,可查看我上传的文库
//队中出队// else { q->llink->rlink=q->rlink; q->rlink->llink=q->llink; } free(q);return head; } }
/********创建输入双向链表元素*********/ queue *creat(queue *head) { datatype x; scanf("%d",&x); while(x!=-999) { head=append(head,x); scanf("%d",&x); } return head; }
/******模拟进程队列的管理(出入队)(带前后指针的头结点)(双向链表)*****/
#include<stdio.h> #include<stdlib.h> #include"dlnkqueue.h"
void main() {
queue *head;dnode *p,*q; int i,j;
head=init(); printf("创建一入队进程(以数字-999结束):\n"); head=creat(head); printf("\n请输入要入队的一进程:\n"); scanf("%d",&i); p=find(head,i); if(p) printf("该进程%d已存在,无法入队!\n",i); else
操作系统实验,这都是我自己在学习OS原理(西安电子科技大学版)写的C语言作业,仅供学习,有些不足,仅供交流。操作系统这一共有6个算法,可查看我上传的文库
{ head=append(head,i); printf("入队后:\n"); print(head);
}
printf("\n\n请输入要出队的一进程:\n"); scanf("%d",&j); q=find(head,j); if(!q) printf("该进程%d不存在,无法出队!\n",j); else { head=dele(head,j); printf("出队后:\n"); print(head); printf("\n"); }
}
正在阅读:
模拟进程队列的管理(出入队)05-15
2014教师质量分析(四年级英语)11-17
外军UHF电台介绍04-13
我来帮帮你作文450字06-28
《环境工程学》试卷、习题集及答案10-02
大学生优秀艺术作品展策划方案03-13
宝宝周岁生日致辞02-12
描写天气寒冷的好段02-21
2018部编人教版语文二年级上第14课《我要的是葫芦》教学设计09-13
先进个人获奖感言02-17
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 入队
- 队列
- 进程
- 模拟
- 管理
- 小班语言 夜晚的小池塘
- CRTSⅡ型双块式无砟轨道施工技术
- 房地产崩盘时间表20100328
- 小龙潭露天矿东帮边坡稳定性分析
- 黄色为何成为色情的代名词
- 《电子商务安全与管理》第7章
- JSP课程设计-简单用户管理系统的设计与开发
- 护理人员工作满意度与离职意愿研究进展_李娟英
- 爱是教师最美丽的语言
- E万易网络超市商业计划书
- 推广话术-资产委托管理常见问题集锦
- 结构化面试题目及评分标准(一)
- 信息管理学课程复习要点(前5章)-20131222
- Chapter_3_生物数据库简介
- 我国宏观经济形势与结构调整趋势分析(新)
- 九年级数学相似复习学案修改
- 足细胞损伤与糖尿病肾病相关性研究
- 会计实习日志(30篇)
- 沈中学生使用手机情况调查报告1
- 外研版九年级英语Module 8基础水平测试题及答案