📄 os.h
字号:
#include<iostream.h>
#include<cstdlib>
#define TRUE 1
#define FALSE 0
typedef struct memory
{
int pagenum;//页号
int times;//被应用的次数
}Memory;
class stack{
Memory *top;
Memory *base;
int stacksize;
public:
int size();//当前大小
bool empty();
void push(Memory);
Memory pop();
stack(int size);
~stack();
int getstacksize();
int search(int n);//如果找到返回下标
void exchange(Memory mem,int i);
void print();
int searchmin();
int pagenum(int n);
};
int stack::pagenum(int n)
{
return base[n].pagenum;
}
int stack::searchmin()
{
int j=0;
for(int i=1;i<size();i++)
if(base[i].times>base[j].times)
j=i;
return j;
}
void stack::print()
{
for(int i=0;i<size();i++)
{
cout<<base[i].pagenum<<" ";
}
//cout<<endl;
}
void stack::exchange(Memory mem,int i)
{
if(mem.pagenum==base[i].pagenum)
base[i].times=0;
else
base[i]=mem;
for(int j=0;j<size();j++)
{
if(j!=i)
base[j].times++;
}
}
int stack::search(int n)
{
for(int i=0;i<size();i++)
if(base[i].pagenum==n)
return i;
return -1;
}
stack::stack(int size)
{
stacksize=size;
base=new Memory[stacksize];
top=base;
}
stack::~stack()
{
delete []base;
}
bool stack::empty()
{
if(base==top)
return TRUE;
return FALSE;
}
Memory stack::pop()
{
//if(empty())
// return;
return *--top;
}
void stack::push(Memory mem)
{
if(size()==stacksize)
return;
*top++=mem;
for(int i=0;i<size();i++)
base[i].times++;
}
int stack::size()
{
return top-base;
}
int stack::getstacksize()
{
return stacksize;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -