分析:clock置换算法是利用循环队列来实现的。操作系统课本上的讲解时这样的
代码实现:
#include<iostream>
using namespace std;
typedef struct numbernode
{
int *data;
bool *ask;//访问号
}Numnode;
typedef struct node
{
Numnode numnode;
int maxsize;
int rear;
int front;
}queue;
queue* create();
void push(queue *);
void pop(queue *);
int turnyemian(queue *myque,int Telem);
queue* create()
{
queue *myque=new queue;
myque->numnode.data=new int;
myque->numnode.ask=new bool;
myque->rear=0;
myque->front=0;
int i;
int m;
printf("队列共有多少个元素?\n");
scanf("%d",&m);
for(i=0;i<=m;i++)
myque->numnode.ask[i]=false;
myque->maxsize=m+1;
return myque;
}
void push(queue *myque)
{
if((myque->rear+1)%myque->maxsize!=myque->front)
{
printf("请输入您访问的页面号?\n");
scanf("%d",&m