/*
本程序主要用于模拟 LRU 算法(内存单元在 10 个以内);支持动态输入数
字
和 内 存 单 元 个 数 ; 输 出 结 果 为 每 步 的 内 存 存 储 情 况 及 缺 页 统 计 情 况 。
2010.1.1
*/
#include <stdio.h>
#dene M 10
#dene N 100
void swap();
int nd();
void swap(int a,int b[N]
,int d,int k,int m)
{
int i;
for(i=k;i<m;i++)
b[d][i]=b[d-1][i];
for(i=k;i>0;i--)
b[d][i]=b[d-1][i-1];
b[d][0]=a;
}
int LRU(int a[],int b[N]
,int n,int m)
{
int i,k,h=1,u=0;
printf(" ");
b[0][0]=a[0];
for(i=1;i<n;i++)
{
for(k=0;k<m;k++)
{
if(b[i-1][k]==a[i])
{
swap(a[i],b,i,k,m);
break;
}
}