当前位置: 首页 > news >正文

数据结构第一次实验

删除进程未完成

代码:

#include "stdio.h"
#include <stdlib.h>
#include <conio.h>
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0// ¶¨Òå½ø³Ì¿ØÖÆ¿éPCB
struct pcb{// ½ø³ÌÃû×Ö char name[10];// ½ø³ÌÊÇ·ñÔËÐÐ char state;// ½ø³ÌÓÅÏȼ¶Êý int super;int ntime;int rtime;// ÏÂÒ»¸ö½ø³Ì struct pcb* link;
}*ready=NULL,*p,*res;typedef struct pcb PCB;// ½¨Á¢¶Ô½ø³Ì½øÐÐÓÅÏȼ¶ÅÅÁк¯Êý
//void sort(){
//	int l=0;
//	PCB* pr=ready; 
//	while(pr!=NULL){
//		l++;
//		pr=pr->link; 
//	}
//	pr=p;
//	printf("l: %d\n",l);
//}// ·µ»Ø¾ÍÐ÷¶ÓÁеij¤¶È 
int space(){int l=0;PCB* pr=ready;while(pr!=NULL){l++;pr=pr->link;}return(l);
}// °´ÕÕÓÅÏÈÊý½øÐÐÅÅÐò ¿ÉÇÀÕ¼
//void sort(){
//	int len=space();
//	if(len==1){
//		if(ready->super>p->super){
//			p->link=ready;
//			ready=p;
//		}else{
//			ready->link=p;
//		}
//	}
//	else if(len>1){
//		PCB* pr=ready,*qr=ready->link;
//		while(qr!=NULL){
//			if(qr->super>p->super){
//				pr->link=p;
//				p->link=qr;
//				break;
//			}
//			pr=qr;
//			qr=qr->link;
//		}
//		qr=p;
//	}
//	else{
//		ready=p;
//	}
//}
void sort(){int len=space();if(len==1){if(ready->super>p->super){p->link=ready;ready=p;}else{ready->link=p;}}else if(len>1){PCB* pr=ready,*qr=ready->link;while(qr!=NULL){
//			printf("&&&&&&&&&&&&&&&&&&&&&&\n");if(qr->super>p->super){pr->link=p;p->link=qr;break;}pr=pr->link;qr=qr->link;}pr->link=p;}else{ready=p;}// È¥µôÔËÐÐÍêµÄ
//	res=NULL;
//	PCB *rpr=res,*pr=ready,*pp;
//	while(pr!=NULL){
//		if(pr->state=='w'){printf("&&&&&&&&&&&&&&&&&&&&&&\n");
//			pp=pr;
//			pp->link=NULL;
//			rpr=pp;
//			rpr=rpr->link;
//		}
//		pr=pr->link;
//	}
//	ready=res;PCB *pr=ready,*qr;while(pr->state!='w')pr=pr->link;ready=pr;qr=ready->link;while(qr!=NULL){if(qr->state=='w'){pr=qr;pr=pr->link;pr=NULL;}qr=qr->link;}printf("sort-len: %d\n",space());
}// ÕâÑùºÃÏñ¸ü¼òµ¥ 
//void sort(){
//	int len=space();
//	PCB *res=NULL,*rpr=res,*pr=ready;
//	if(len){
//		while(pr!=NULL||p!=NULL){
//			if(pr->state=='R'){
//				if(pr!=NULL&&p!=NULL){
//					if(pr->super>p->super){
//						rpr=p;
//						rpr=rpr->link;
//						p=NULL;
//					}else{
//						rpr=pr;
//						rpr=rpr->link;
//						pr=pr->link;
//					}
//				}else if(pr!=NULL&&p==NULL){
//					rpr=pr;
//					rpr=rpr->link;
//					pr=pr->link;
//				}else{
//					rpr=p;
//					rpr=rpr->link;
//					p=NULL;
//				}
//			}else{
//				pr=pr->link;
//			}
//		}
//	}
//	else{
//		res=p;
//	}
//	ready=res;
//}// ½¨Á¢½ø³Ì¿ØÖƿ麯Êý
void input() { int i,num;printf("\n ÇëÊäÈë½ø³ÌÊýÁ¿?");scanf("%d",&num);for(i=0;i<num;i++){printf("\n ½ø³ÌºÅNo.%d:\n",i);p=getpch(PCB);printf("\n ÊäÈë½ø³ÌÃû:");scanf("%s",p->name);printf("\n ÊäÈë½ø³ÌÓÅÏÈÊý:");scanf("%d",&p->super);printf("\n ÊäÈë½ø³ÌÔËÐÐʱ¼ä:");scanf("%d",&p->ntime);printf("\n");p->rtime=0;p->state='w';p->link=NULL;sort();} 
}// ½¨Á¢½ø³ÌÏÔʾº¯Êý,ÓÃÓÚÏÔʾµ±Ç°½ø³Ì
void disp(PCB * pr){printf("\n qname \t state \t super \t ndtime \t runtime \n");printf("|%s\t",pr->name);printf("|%c\t",pr->state);printf("|%d\t",pr->super);printf("|%d\t",pr->ntime);printf("|%d\t",pr->rtime);printf("\n");
}// ½¨Á¢½ø³Ì²é¿´º¯Êý
void check(){PCB* pr;//ÏÔʾµ±Ç°ÔËÐнø³Ìprintf("\n **** µ±Ç°ÕýÔÚÔËÐеĽø³ÌÊÇ:%s",p->name);disp(p);pr=ready;//ÏÔʾ¾ÍÐ÷¶ÓÁÐ״̬printf("\n ****µ±Ç°¾ÍÐ÷¶ÓÁÐ״̬Ϊ:\n");while(pr!=NULL){disp(pr);pr=pr->link; } 
} // ½¨Á¢½ø³Ì³·Ïûº¯Êý(½ø³ÌÔËÐнáÊø,³·Ïû½ø³Ì)
void destroy(){printf("\n ½ø³Ì [%s] ÒÑÍê³É.\n",p->name);free(p);
}// ½¨Á¢½ø³Ì¾ÍÐ÷º¯Êý(½ø³ÌÔËÐÐʱ¼äµ½,ÖþÍÐ÷״̬
void running(){(p->rtime)++;// µ÷ÓÃdestroyº¯Êýif(p->rtime==p->ntime)destroy();else{(p->super)--;p->state='w';// µ÷ÓÃsortº¯Êýsort();} 
} int main(){int len,h=0;char ch;input();len=space();//	printf("len: %d\n",len);while((len!=0)&&(ready!=NULL)){ch=getchar();h++;printf("\n The execute number:%d \n",h);p=ready;ready=p->link;p->link=NULL;p->state='R';check();running();printf("\n °´ÈÎÒ»¼ü¼ÌÐø......");ch=getchar();}printf("\n\n ½ø³ÌÒѾ­Íê³É.\n"); ch=getchar();return 0;
}/*2
000
0
1
111
1
25
000
0
1
111
1
2
222
2
3
333
3
4
444
4
5*/

http://www.lryc.cn/news/348826.html

相关文章:

  • .NET WebService \ WCF \ WebAPI 部署总结 以及 window 服务 调试,webservice 的安全验证
  • 自动化运维管理工具 Ansible-----【inventory 主机清单和playbook剧本】
  • java static 关键字
  • CentOS 磁盘扩容与创建分区
  • Java面试八股之什么是Java反射
  • Netty-面试题(上)(四十九)
  • 【热门话题】Vue.js:现代前端开发的轻量级框架之旅
  • 【LAMMPS学习】八、基础知识(6.5)PyLammps 教程
  • GPT-4o正式发布;零一万物发布千亿参数模型;英国推出AI评估平台
  • 多模态大语言模型的演化:综述
  • Qt---绘图和绘图设备
  • 【2024】前端,该卷什么呢?
  • C++干货--引用
  • 部署 Sentinel 控制台:实现流量管理和监控
  • 10、Go Gin 连接Redis以及CookieSession
  • Electron-Vue 脚手架避坑实录,兼容Win11,升级electron22,清理控制台错误
  • 国外新闻媒体推广:多元化媒体分发投放-大舍传媒
  • 【Windows】回忆Win98
  • 探索QChart:Qt中的数据可视化艺术
  • 【Linux】线程机制解析:理解、优势与Linux系统应用
  • java中简单工厂模式,工厂方法模式和抽象工厂模式的区别和联系?
  • SERVER_DOWN 表示该服务器已经宕机或无法访问
  • 深度论证-高速走线控制100欧姆阻抗一定是最好的选择吗?
  • 【文末福利送资料】深度探索GPT模型,竟然10个字都不会说?
  • 一些近来对内网攻防的思考
  • 数据结构--顺序表和链表的区别
  • 【技术分享】 OPC UA安全策略证书简述
  • 【Neo4jJDK开箱即用的安装全流程】
  • Linux 操作系统多路IO复用
  • 读取shape文件中数据