亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hbj.cpp

?? 題目:銀行家算法 具體要求:屏幕提示:輸入申請(qǐng)資源的進(jìn)程和各資源數(shù)目
?? CPP
字號(hào):
// bank_al.cpp : Defines the entry point for the console application.
//利用銀行家算法預(yù)防死鎖

#include "stdafx.h"
#include"iostream.h"
#include"fstream.h"、


//類的定義
///////////////////////////////////////////////////////////////////////////////////////
class node{
public:
	int name;  //進(jìn)程名
	int *allocation;  //已分配資源
	int *need;  //總共所需資源
	int size;
	node *next;
	node(int n=3)
	{allocation=new int[n];
	need=new int[n];
	size=n;
	next=NULL;}
	~node(){
		delete [] allocation;
		delete [] need;
	}
	bool isenough(int *rest)
	{
	for(int i=0;i<size;i++)
		if(allocation[i]+rest[i]<need[i])
			return false;
	return true;
}

}
//函數(shù)說(shuō)明


bool node::isenough(int *rest)
//////////////////////////////////////////////////////////////////////
class bankal{  //利用循環(huán)隊(duì)列
private:
	node *fence; //指向隊(duì)列中某一進(jìn)程
	int *res_spare; // or *res_sum 所剩資源
	int length;  //進(jìn)程總數(shù)
	int size;  //資源種數(shù)
public:
	bankal(int n=3);
	~bankal();
	void initialize();
	bool check(int nm,int *imp);
	void print();
};

//函數(shù)說(shuō)明
bankal::bankal(int n){
	size=n;
	length=0;
	res_spare=new int[n];
	fence=NULL;
}

bankal::~bankal(){
	node *temp=fence;
	for(int i=0;i<length;i++){
		temp=fence;
		fence=fence->next;
		delete temp;
	}
	delete [] res_spare;
}

void bankal::initialize(){
	int i,nm=0;
	node *temp;
	ifstream myinf("data.txt",ios::in | ios::nocreate);
	if(myinf.fail()){
		cerr<<"error opening file wenfa\n";
		return;
	}
	//輸入還可用資源
	for(i=0;i<size;i++)
		myinf>>res_spare[i];
	//輸入進(jìn)程,及其總共所需資源數(shù)和已分配資源數(shù)
	length=0;
	while(!myinf.eof()) {
		temp=new node(size);
		for(i=0;i<size;i++)
			myinf>>temp->need[i];
		for(i=0;i<size;i++)
			myinf>>temp->allocation[i];
		temp->name=nm;
		nm++;
		if(length==0){
			fence=temp;
			fence->next=fence;
		}
		else{
			temp->next=fence->next;
			fence->next=temp;
			fence=fence->next;
		}
		length++;
	}
}

bool bankal::check(int nm,int *imp){
	int i,j,endtag;
	int *restcopy,lcopy=length;
	node *head=NULL,*rear=NULL;
	node *tp=NULL,*pre=NULL;
	//步驟(2,3)
	restcopy=new int[size];
	for(j=0;j<size;j++){
		restcopy[j]=res_spare[j];
		if(restcopy[j]>=imp[j])
			restcopy[j]=restcopy[j]-imp[j];
		else{
			delete [] restcopy;
			cout<<"資源不足。"<<endl;
			return false;
		}
	}
	//步驟(1)
	while(fence->name!=nm && lcopy>0){
		fence=fence->next;
		lcopy--;
	}
	if(lcopy==0){ //即當(dāng)未找到進(jìn)程nm時(shí)
		cout<<"輸入有誤,不存在這個(gè)進(jìn)程。"<<endl;
		delete [] restcopy;
		return false;
	}
	tp=fence;
	for(i=0,j=0;i<size;i++){
		if(tp->need[i]>=tp->allocation[i]+imp[i])
			j++;
	}
	if(j!=size){
		cout<<"它所請(qǐng)求的資源大于它總共所需的資源數(shù)。"<<endl;
		delete [] restcopy;
		return false;
	}
	//嘗試分配給它,步驟(3)
	for(i=0;i<size;i++)
		tp->allocation[i]=tp->allocation[i]+imp[i];
    //步驟(4)
	lcopy=length;
	pre=fence;
	fence=fence->next;
	while(lcopy){
		endtag=1;
		for(i=0;i<lcopy;i++){
			if(fence->isenough(restcopy)){   //==true
				if(head==NULL)
					head=rear=fence;
				else
					rear=rear->next=fence;
				for(j=0;j<size;j++)
					restcopy[j]=restcopy[j]+fence->allocation[j];
				lcopy--;
				endtag=0;
				pre->next=fence->next;
				fence->next=NULL;
				fence=pre->next;
			}
			else{
				pre=fence;
				fence=fence->next;
			}
		}
		if(endtag==1){
			cout<<"分配后不可能再處于安全狀態(tài)了。"<<endl;
			//撤消原分配
			if(head){  //head不為NULL時(shí)
				rear->next=fence->next;
				fence->next=head;
			}
	        for(i=0;i<size;i++)
		        tp->allocation[i]=tp->allocation[i]-imp[i];
			delete [] restcopy;
			return false;
		}
	}
	//能夠分配請(qǐng)求資源后的處理
	delete [] restcopy;
	for(j=0;j<size;j++){
        res_spare[j]=res_spare[j]-imp[j];
	}
	//重新形成循環(huán)隊(duì)列
	//也重新置fence的值,以便后面輸出安全序列
	rear->next=head;
	fence=head;
	return true;
}


void bankal::print(){
	int i,j;
    //輸出所剩資源數(shù)
	cout<<"spare resource\n( ";
	for(j=0;j<size;j++)
		cout<<res_spare[j]<<" ";
	cout<<")"<<endl;
    //輸入進(jìn)程,及其總共所需資源數(shù)和已分配資源數(shù)
	cout<<"name\tmax\t\tneed_resource\tget_resource"<<endl;
	for(i=0;i<length;i++){
		cout<<fence->name<<"\t( ";
		for(j=0;j<size;j++)
			cout<<fence->need[j]<<" ";
		cout<<")\t( ";
		for(j=0;j<size;j++)
			cout<<fence->need[j]-fence->allocation[j]<<" ";
		cout<<")\t( ";
		for(j=0;j<size;j++)
			cout<<fence->allocation[j]<<" ";
		cout<<")\t"<<endl;
    	fence=fence->next;
	}

}



///////////////////////主函數(shù)////////////////////////////////////
int main(int argc, char* argv[])
{
	int i,sum=3;//最大需求
	int *temp,nm;
	temp=new int[sum];
	bankal runba;
	runba.initialize();
	runba.print();
	//輸入請(qǐng)求資源情況
	cout<<"輸入請(qǐng)求資源情況(輸入負(fù)數(shù)表示結(jié)束)。"<<endl;
	while(1){
		cout<<"輸入進(jìn)程名。"<<endl;
		cin>>nm;
		if(nm<0) break;  //結(jié)束
		cout<<"依次輸入所請(qǐng)求的資源數(shù)"<<endl;
		for(i=0;i<sum;i++)
			cin>>temp[i];
		if(runba.check(nm,temp)){
			//可以響應(yīng)資源的請(qǐng)求
			cout<<"可以響應(yīng)資源的請(qǐng)求,其安全隊(duì)列如下:"<<endl;
			runba.print();
		}
		else{
			cout<<"不可以響應(yīng)資源的請(qǐng)求。"<<endl; //不可以響應(yīng)資源的請(qǐng)求
		}
	}
	return 0;
}




?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费国产亚洲视频| 看国产成人h片视频| 日韩一区二区三区电影 | 日本欧美久久久久免费播放网| 日韩三级视频在线观看| 91天堂素人约啪| 久久99国产精品免费| 亚洲国产精品久久久男人的天堂| 欧美变态口味重另类| 欧美日韩在线电影| 99re这里都是精品| 国产suv精品一区二区三区| 午夜精品一区二区三区免费视频 | 国产精品污污网站在线观看| 欧美一区二区精品| 6080午夜不卡| 欧美精品一二三| 精品视频免费在线| 欧美日韩日日夜夜| 色婷婷一区二区| 日本韩国欧美国产| 色94色欧美sute亚洲13| 成人免费毛片片v| 成人毛片在线观看| 色综合一个色综合| 欧美三级中文字幕在线观看| 欧美自拍丝袜亚洲| 欧美视频在线观看一区二区| 91国模大尺度私拍在线视频| 国产毛片精品国产一区二区三区| 激情综合色播激情啊| 奇米影视一区二区三区小说| 日韩成人一区二区三区在线观看| 亚洲国产成人av| 午夜欧美电影在线观看| 精品一区二区三区av| 成人97人人超碰人人99| 在线观看av一区| 欧美一区二区三区白人| 国产欧美一区二区精品久导航 | 这里是久久伊人| 久久亚洲精华国产精华液| 国产三级精品在线| 一区二区三区在线不卡| 美腿丝袜在线亚洲一区| 99视频精品全部免费在线| 欧美另类变人与禽xxxxx| 精品va天堂亚洲国产| 一区二区三区在线播放| 麻豆精品在线观看| 欧美三级欧美一级| 国产视频一区不卡| 成人毛片视频在线观看| 欧美中文字幕一二三区视频| 久久欧美中文字幕| 午夜精品久久久久久久蜜桃app| 国产一区福利在线| 欧美年轻男男videosbes| 日本一区二区动态图| 日本大胆欧美人术艺术动态| 色综合久久久久综合| 日本一区二区动态图| 黄色小说综合网站| 欧美一区二区三区四区视频| 欧美精品一区二区三区在线播放 | 日韩成人伦理电影在线观看| 一本色道**综合亚洲精品蜜桃冫| 久久久亚洲精华液精华液精华液| 亚洲高清三级视频| 欧美日韩免费高清一区色橹橹| 国产精品美女久久福利网站| 国产精品影视在线观看| 精品国产123| 国产乱子伦一区二区三区国色天香| 欧美日韩综合一区| 亚洲成av人片在线观看| 欧美三级视频在线播放| 亚洲图片欧美综合| 欧美日韩综合在线| 青青青伊人色综合久久| 中文字幕日韩一区二区| 成人一区二区三区中文字幕| 国产精品无遮挡| 91国在线观看| 欧美aaaaa成人免费观看视频| 日韩精品中文字幕一区二区三区| 免费的成人av| 国产欧美日韩精品在线| 在线视频中文字幕一区二区| 视频一区二区三区中文字幕| 日韩一区二区免费电影| 国产精品一级片在线观看| 综合婷婷亚洲小说| 欧美一卡二卡在线观看| 韩国女主播成人在线| 亚洲精品日产精品乱码不卡| 3751色影院一区二区三区| 久久国产精品露脸对白| 国产精品污网站| 91麻豆精品国产91久久久更新时间 | 国产精品1区2区| 日韩vs国产vs欧美| 日韩一区二区免费在线观看| 久久国产夜色精品鲁鲁99| 最新成人av在线| 欧美成人r级一区二区三区| 粉嫩av亚洲一区二区图片| 天堂一区二区在线| 国产精品久久久久久久久久久免费看| 欧美综合一区二区| 国产黄色精品网站| 日韩在线a电影| 一区二区三区四区不卡在线| 精品999久久久| 91精品国产91热久久久做人人| 99久久99久久免费精品蜜臀| 午夜精品爽啪视频| 一区精品在线播放| 国产精品国产三级国产aⅴ中文| 精品美女一区二区| 日韩免费观看高清完整版| 欧美日韩中文精品| 欧美日韩性生活| 日本久久一区二区三区| 色综合久久久网| 日本韩国一区二区三区| 91香蕉国产在线观看软件| 91视频免费播放| 日本久久一区二区| 欧美日韩国产首页| 欧美三级乱人伦电影| 欧美日产在线观看| 日韩一区二区视频在线观看| 欧美成人官网二区| 国产区在线观看成人精品| 欧美激情中文字幕| 亚洲精品一卡二卡| 视频一区二区不卡| 极品瑜伽女神91| 92国产精品观看| 91精品国产综合久久香蕉的特点| 欧美日本一区二区| 久久久一区二区| 中文字幕综合网| 一区二区三区四区激情| 图片区小说区区亚洲影院| 麻豆成人久久精品二区三区红 | 欧美精品一区二区三区蜜臀| 久久久久久久久久久黄色| 一区二区三国产精华液| 伦理电影国产精品| 成人免费高清视频在线观看| 色国产综合视频| 久久婷婷成人综合色| 亚洲欧美视频一区| 黑人精品欧美一区二区蜜桃| 成人免费精品视频| 日韩一区二区三区视频在线| 亚洲美女淫视频| 激情六月婷婷综合| 91精品婷婷国产综合久久竹菊| 国产亚洲精品福利| 免费的成人av| 欧美日本视频在线| 亚洲一区二区三区四区在线| 丁香婷婷综合网| 久久九九99视频| 麻豆一区二区三| 日韩欧美一级二级| 日韩电影一二三区| 欧美日韩激情一区二区三区| 自拍偷自拍亚洲精品播放| 成人久久久精品乱码一区二区三区| 日韩一区二区三区四区五区六区| 亚洲一二三四在线| 在线精品亚洲一区二区不卡| 国产精品色哟哟| 成人妖精视频yjsp地址| 久久先锋影音av| 国产米奇在线777精品观看| 精品理论电影在线| 国产高清不卡二三区| 日本一区二区视频在线观看| 国产一区二区三区免费看| 久久久91精品国产一区二区精品 | 91在线视频观看| 亚洲男人电影天堂| 欧美精品aⅴ在线视频| 日本三级亚洲精品| 久久久亚洲午夜电影| 国产激情精品久久久第一区二区 | 国产综合久久久久久鬼色| 欧美哺乳videos| 成人在线综合网| 亚洲国产成人精品视频| 欧美日韩国产综合一区二区三区| 亚洲成人精品一区二区| 欧美电视剧免费观看| 不卡的av中国片| 日韩专区在线视频|