📄 readyqueue.h
字号:
# if !defined(__PCB_H)
#include "CPU\PCB.h"
# endif
# if !defined(__READYQUEUE_H)
#define __READYQUEUE_H
# endif
class ReadyQueue
{
public:
PCB head;
PCB tail;
int NoOfJobs;
ReadyQueue()
{
head.next = NULL;
tail.next = NULL;
NoOfJobs = 0;
}
void addPCB(PCB *p)
{
NoOfJobs++;
/*if(NoOfJobs == 1)
{
head.next = p;
tail.next = p;
return;
}*/
PCB * ptr = &head;
while (ptr->next != NULL)
{
ptr = ptr->next;
}
ptr->next = p;
tail.next = p;
}
void delPCB(PCB *p)
{
PCB * ptr = &head;
PCB * ptr1 = NULL;
while (ptr != NULL)
{
if(ptr == p)
{
ptr1->next = ptr->next;
delete(ptr);
NoOfJobs--;
}
ptr1 = ptr;
ptr = ptr->next;
}
tail.next = ptr;
}
PCB* getPCB(int i)
{
PCB * ptr = &head;
while(i>0)
{
i--;
ptr = ptr->next;
}
return ptr;
}
}ReadyQueue;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -