📄 list.h
字号:
// List.h: interface for the List class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_LIST_H__6D78FEEC_384C_415E_97A1_83FD6734BF4C__INCLUDED_)
#define AFX_LIST_H__6D78FEEC_384C_415E_97A1_83FD6734BF4C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ConstVar.h"
#include <iostream>
using namespace std;
class Os;
typedef struct PCB
{
int id;//进程标识符;
char *name;//进程名字;
PCBstatus status;//进程当前状态;
struct PCB *next;//指向同状态的下一个PCB
int priority;//进程优先级;
int IOdevice;//外设清单
int IOreq;//进程还需要的外部设备;
int blockfor;//阻塞原因;
int timereq;//进程要求的执行时间
int time_cpu;//已经执行的时间;
void (*fuction)(Os *);//模拟进程要执行的代码的地址
}PCB;
class List
{
private:
int NodeNum;
char *status;//链表的状态
PCB *ListHead;//指向链表的第一个进程
PCB *ListTail;//指向链表的最后一个进程
public:
Status AppendPCB(PCB *datap);//将指定PCB加入链表
PCB *DeletePCB(int pid);//删除指定的PCB结点
void DisplayList();//显示整个链表
void DisplayPCB(PCB *pcb);//显示PCB中的详细信息
PCB* FindPCB(int pid,PCB* &pre);//查找指定的结点
PCB* FindPCB(int pnum);//查找链表中的第pnum个结点
char* GetListStatus();//取得当前链表PCB结点的状态
int GetNodeNum();//取得链表的结点数
void SetNodeNum(int k);//设置链表结点数
Status isEmpty();//判断链表是否为空
Status GetFirstPCB(PCB* &pcb);//取第一个结点
void SetStatus(char *s);//设置状态标识
void SetListHead(PCB*pcb);//设置头指针
void SetListTail(PCB*pcb);//设置尾指针
List(char* nodetype="就绪");//构造函数,初始化
virtual ~List();
};
#endif // !defined(AFX_LIST_H__6D78FEEC_384C_415E_97A1_83FD6734BF4C__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -