⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lru.h

📁 内存页式调度算法
💻 H
字号:
#include <iostream.h>
#include <stdlib.h>
#include "Seqlist.h"
  
SeqList seq;
const int MaxLRUSize=3;
int mzs2=0;
char y[3];




class LRU
{
private:
	Datatype data[MaxLRUSize];
	
	int rear;
	
public:
	LRU(void){rear=0;count=0;};
	~LRU(){};
	void LRUInsert(const Datatype & item);    //入队列
    void LRUDelete(int x);   //出队列
	void Getitem();
    char temp;
    int count;
};



void LRU::Getitem()
{
	int i;
	i=0;

   for(i=0;i<3;i++)
   {
	temp=data[i];
	cout<<temp<<endl;
	
   }

cout<<"****************"<<endl;

}


void LRU::LRUInsert(const Datatype & item)
{
	int i;
	int b;
	
	int j;
	int x=0;
    char temp5;
 ////////////////////////////////////////////////////////////////////    
/*	if(seq.size==0)
	{
		b=seq.size;
		seq.Insert(item,0);
		data[0]=item;
		count++;
	}
*/
//////////////////////////////////////////////////////////////////	
	  if(seq.size<3)
	  {     
		    int z=0;
          	for(i=0;i<3;i++)
		{
			if(seq.data[i]==item) 
			{
				cout<<"该内存"<<item<<"号页面已被调用"<<endl;
				z++;
				b=i;
				
			}
		}
/****************************************************************/
			if(z==0)
		{
			cout<<"该内存页面不存在!"<<endl;
			j=seq.size;
			seq.Insert(item,j);
            
			data[count]=item;
			count++;
			
		}
/*************************************************************/
		  else if(z!=0) 
		{   
			      
			j=seq.size;
		    temp5=seq.data[b];
		    for(i=0;i<j;i++) 
			{
				seq.data[i]=seq.data[i+1];
			}

			seq.data[seq.size-1]=temp5; 
			mzs2++;
		}
		 
	  }
//////////////////////////////////////////////////////////////////////
	else if(seq.size==3)
	{
		int a=0;
		for(i=0;i<3;i++)
		{
			if(seq.data[i]==item) 
			{
				a++;
				b=i;
				cout<<"该内存"<<item<<"号页面已被调用"<<endl;
			}
		}
		if(a==0)
		{
			cout<<"该内存页面不存在!"<<endl;
			seq.Insert(item,2);
            for(i=0;i<3;i++)
			{
			  if(data[i]==seq.temp2) data[i]=item; 
			}
			
			
		}
		else if(a!=0)
		{
		    temp5=seq.data[b];
			for(i=b;i<MaxListSize;i++) 
			{
				seq.data[i]=seq.data[i+1];
				
			}
			seq.data[MaxListSize-1]=temp5;
			mzs2++;
		}
	 
	}

}					
				
	            
	            
		   
		
	
		
	
	

///////////////////////////////////////////////////////////

void LRU::LRUDelete(int x)
{
  char temp3;
  temp3=data[x];
  count--;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -