数据结构第一次实验
删除进程未完成
代码:
#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*/
相关文章:
数据结构第一次实验
删除进程未完成 代码: #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 …...
.NET WebService \ WCF \ WebAPI 部署总结 以及 window 服务 调试,webservice 的安全验证
一、webservice 部署只能部署IIS上, 比较简单,就不做说明了 安全验证: Formwindow身份加个参数,token 定时更新可以Soapheader 》》》soapheader验证 首先要新建一个类 且这个类必须继承SoapHeader类 且这个类型必须有一个无参…...
自动化运维管理工具 Ansible-----【inventory 主机清单和playbook剧本】
目录 一、inventory 主机清单 1.1inventory 中的变量 1.1.1主机变量 1.1.2组变量 1.1.3组嵌套 二、Ansible 的脚本 ------ playbook(剧本) 2.1 playbook介绍 2.2playbook格式 2.3playbooks 的组成 2.4playbook编写 2.5运行playbook 2.5.1ans…...
java static 关键字
在Java中,static是一个关键字,用于创建类级别的成员(字段、方法、块)。static成员属于类本身,而不是类的实例,因此可以直接通过类名访问,而不需要创建类的实例。 1. 静态字段(Stati…...
CentOS 磁盘扩容与创建分区
文章目录 未分配空间创建新分区重启服务器添加物理卷扩展逻辑卷 操作前确认已给服务器增加硬盘或虚拟机已修改硬盘大小(必须重启服务才会生效)。 未分配空间 示例说明:原服务器只有40G,修改虚拟机硬盘大小再增加20G后硬盘变为60G。…...
Java面试八股之什么是Java反射
什么是Java反射 基本概念 反射是Java语言的一个重要特性,它允许我们在运行时分析类、接口、字段、方法等组件的信息,并能够动态地操作这些组件,包括创建对象、调用方法、访问和修改字段值等。简单来说,反射提供了在程序运行时对…...
Netty-面试题(上)(四十九)
为什么Netty适合做网络编程? Netty 是由 JBOSS 提供的一个 Java 开源框架。Netty 提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序。Netty 主要用来做网络通信,一般可以用来作RPC框架的通信工具、实现即时通讯…...
【热门话题】Vue.js:现代前端开发的轻量级框架之旅
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 Vue.js:现代前端开发的轻量级框架之旅一、Vue.js概览1.1 Vue.js的诞…...
【LAMMPS学习】八、基础知识(6.5)PyLammps 教程
8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…...
GPT-4o正式发布;零一万物发布千亿参数模型;英国推出AI评估平台
OpenAI 正式发布 GPT-4o 今天凌晨,OpenAI 正式发布 GPT-4o,其中的「o」代表「omni」(即全面、全能的意思),这个模型同时具备文本、图片、视频和语音方面的能力,甚至就是 GPT-5 的一个未完成版。 并且&…...
多模态大语言模型的演化:综述
24年2月意大利三所研究大学和机构的论文“The Evolution of Multimodal Large Language Models: A Survey”。 连接文本和视觉模态在生成智能中起着至关重要的作用。由于这个原因,在大语言模型成功的启发下,大量的研究工作被投入到多模态大语言模型&…...
Qt---绘图和绘图设备
一、QPainter绘图 绘图事件 void paintEvent() 声明一个画家对象,OPainter painter(this) this指定绘图设备 画线、画圆、画矩形、画文字 设置画笔QPen 设置画笔宽度、风格 设置画刷QBrush 设置画刷风格 代码示例: #includ…...
【2024】前端,该卷什么呢?
✅顺便推个机会,技术大厂,部门捞人,前后端可投。 2024ChatGPT 的炸裂式发展,很多大佬都亲自入场整活儿,你不得不说,人工智能时代的未来已来,大势所趋,不可阻挡。随着生成式AI的迅猛发…...
C++干货--引用
前言: C的引用,是学习C的重点之一,它与指针的作用有重叠的部分,但是它绝不是完全取代指针(后面我们也会简单的分析)。 引用的概念: 引用 不是新定义一个变量 ,而 是给已存在变量取了一个别名 …...
部署 Sentinel 控制台:实现流量管理和监控
序言 Sentinel 是阿里巴巴开源的一款流量防护与监控平台,它可以帮助开发者有效地管理微服务的流量,实现流量控制、熔断降级、系统负载保护等功能。本文将介绍如何在项目中部署和配置 Sentinel 控制台,实现微服务的流量防护和监控。 一、Sen…...
10、Go Gin 连接Redis以及CookieSession
一、Redis 在Go语言中,使用Gin框架结合Redis数据库可以构建高性能的Web应用程序。Gin是一个轻量级的HTTP框架,提供了快速构建RESTful API的能力;而Redis则是一个高性能的键值存储系统,常用于缓存、消息队列、计数器等多种场景 1、…...
Electron-Vue 脚手架避坑实录,兼容Win11,升级electron22,清理控制台错误
去年的还是有用的,大家继续看,今年再补充一些Electron-Vue 异常处理方案 M1 和 Window10_electron异常处理-CSDN博客 代码gitee.com地址 electron-demo: electron 22 初始代码开发和讲解 升级electron为22版本(这个版本承上启下,…...
国外新闻媒体推广:多元化媒体分发投放-大舍传媒
前言 :随着全球化的进程,国外新闻市场呈现出快速发展的趋势。在这个趋势下,国外新闻媒体推广成为了各行业企业宣传业务的重要一环。本文将重点介绍大舍传媒的多元化媒体分发投放服务,以及对国外新闻媒体推广的意义。 1. 多元化媒…...
【Windows】回忆Win98
回忆Win98,又看到了这个Excel界面,上次还是十多年前的计算机课上 1、安装环境 Win11家庭版,23H2,VMware Workstation Pro 16 , 2、安装步骤及参考 虚拟机里的硬盘设置成SATA(否则各种错误),安装MSDOS7.1ÿ…...
探索QChart:Qt中的数据可视化艺术
目录标题 1. QChart概述2. 创建QChart对象3. 添加数据系列(Series)4. 定制图表外观5. 交互与动画6. 图表布局与管理7. 实例代码与解析8. 总结 在数字化的世界里,数据是新的石油。然而,原始数据本身往往难以理解,数据可…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
