资源简介
LRU算法c语言实现,采用了堆栈,简洁,明了,思路清晰
代码片段和文件信息
#define MAXSIZE 15
#include
#include
void main()
{
int input=0; //用于输入作业号
int worknum=0; //输入的作业个数
int storesize=0; //系统分配的存储区块数
int interrupt=0; //缺页中断次数
int stack[MAXSIZE]; //栈,LRU算法的主要数据结构
int workstep[MAXSIZE]; //记录作业走向
/*初始化*/
for(int i=0;i {
stack[i]=0;
workstep[i]=0;
}
printf(“请输入存储区块数:“);
scanf(“%d“&storesize);
printf(“请输入作业的页面走向(输入0结束):\n“);
for(int j=0;j {
printf(“页面号%d “j+1);
scanf(“%d“&input);
workstep[j]=input;
if(input==0)
{
printf(“输入结束!\n“);
break;
}
worknum++;
}
if(workstep[0]==0)
{
printf(“未输入任何作业,系统将退出!\n“);
return;
}
printf(“置换情况如下:\n“);
for(int k=0;k {
/*在栈中找相等的页号或空位置*/
for(int l=0;l {
/*是否有相等的页号*/
if(stack[l]
- 上一篇:FSM有限状态机编程
- 下一篇:简单的极大极小算法实现的井字棋程序
评论
共有 条评论