模拟进程管理——进程出队
来源:互联网 发布:手机阅读word软件 编辑:程序博客网 时间:2024/06/05 03:03
1.动态地输入进程队列,如1,3,4,2
2.出队方式
3.队首进程出队
4.队中进程出队(选定进程)
5.队尾进程出队
6.根据进程id选择一个进程出列(若不存在该进程,则提示不存在)
#include <malloc.h> #include <stdio.h> #include <string.h> #define NULL 0 typedef struct processpcb { int id;/*进程控制块编号*/ struct processpcb *next; }node; int n; node *creat(void) /*建立进程控制块队列表*/ { node *head,*p1,*p2; n=0; printf("Input processpcb table:ID\n"); p1=p2=(node *)malloc(sizeof(node)); scanf("%d",&p1->id); head=NULL; while (p1->id>0) { n=n+1; if (n==1) head=p1; else p2->next=p1; p2=p1; p1=(node *) malloc (sizeof(node)); scanf("%d",&p1->id); } p2->next=NULL; return(head); } node *del(node *head,int pcb) { node *p=head,*q; q=p->next; if(p->id==pcb) return q; while(q&&q->id!=pcb) { p=q; q=q->next; } if(p->id=pcb) p->next=q->next; return head; } void print (node *head) /*输出链表*/ { node *p; p=head; if(!p) printf("链表为空!"); else { printf("元素为:"); while(p) { printf("%5d",p->id); p=p->next; } } } int main() { node *p,*q; int pcbid; p=creat(); printf("\nappend a processpcb\n"); scanf("%d",&pcbid); q=(node *)malloc(sizeof(node)); q->id=pcbid; q->next=NULL; printf("\ninit_processpcb queue is:\n"); print(p); p=del(p,pcbid); printf("\nappend_processpcb queue is:\n"); print(p); }
阅读全文
0 0
- 模拟进程管理——进程出队
- 模拟进程队列管理——进程入队
- Linux进程管理—进程管理
- 模拟进程队列管理——按照优先级出列
- 模拟进程队列管理——按照优先级入列
- 操作系统—进程管理
- 进程出队
- 模拟进程调度管理[C#]
- 操作系统——进程管理
- Linux——进程管理
- 进程管理——Supervisor
- 操作系统——进程管理
- 操作系统——进程管理
- linux——进程管理
- Linux内核—进程管理
- Linux系统管理—进程管理
- 进程管理—task_struct介绍
- 操作系统:模拟进程调度管理系统
- bzoj1876 [SDOI2009]SuperGCD
- 七大排序算法
- 七大排序算法
- Java类加载和反射
- 子集和问题
- 模拟进程管理——进程出队
- 深入浅出数据结构C语言版(17)——有关排序算法的分析
- spring学习笔记十四 五种通知
- JAVA开发常用设计模式介绍、设计模式案例
- Java变量的输入 Scanner类
- Mysql导入与导出
- bzoj1878 [SDOI2009]HH的项链
- 《慕课网玩转算法面试》笔记及习题解答8.1~8.3
- laravel中用到的函数和语法