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

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

?? 循環(huán)首次適應(yīng)算法.cpp

?? 模擬了操作系統(tǒng)里面的動(dòng)態(tài)分配和回收內(nèi)存空間的過程
?? CPP
字號(hào):
// 首次適應(yīng)算法.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"

#include <stdio.h>
#include <stdlib.h> 
#include <conio.h>
#include <string.h>

#define GetSpace(type) (type*)malloc(sizeof(type)) 

#define NULL 0
#define SIZE 0  //定義可以分割空閑塊的差值 

struct mem {
		char Name[10];
		int MemAdr;  //內(nèi)存塊首地址
		int Lenth;   //塊長度
		bool State;  //0 代表是空閑塊,1 代表是已分配塊
		mem *prior;
		mem *next;
		}*Head,*Tail,*PriDis;

typedef struct job JOB;
typedef struct mem MEM;

void DispFreeMem(MEM *pr) /*建立進(jìn)程顯示函數(shù),用于顯示當(dāng)前進(jìn)程*/ 
{ 
	int i=0;
	printf("\n******************************************");
	printf("\n\n The state of free memory:");
	printf("\n Chunk Num \t FirAddress \t Lenth(K)");  //顯示空閑塊的首地址以及大小
	while(pr!=Tail)
	{
		if(pr->State==0)
		{
			printf("\n %d \t\t %d \t\t %d K",i,pr->MemAdr,pr->Lenth);
			i++;
		}
		pr=pr->next;
	}
} 

void DispNotFreeMem(MEM *pr) /*建立進(jìn)程顯示函數(shù),用于顯示當(dāng)前進(jìn)程*/ 
{ 
	printf("\n******************************************");
	printf("\n\n The state of not free memory:");
	printf("\n Job Name \t FirAddress \t Lenth(K)");  //顯示空閑塊的首地址以及大小
	while(pr!=Tail)
	{
		if(pr->State==1)
		{
			printf("\n %s \t\t %d \t\t %d K",pr->Name,pr->MemAdr,pr->Lenth);
		}
		pr=pr->next;
	}
	printf("\n\n******************************************");
}

void Distribute()
{
	MEM *temp,*p;
	char Name[10];
	int Lenth;
	bool Flag=0;
	printf("\n Name of the job:   "); 
	scanf("%s",Name);  
	printf("\n The space of this job:(K)   ");
	scanf("%d",&Lenth);
	getchar();
	p=PriDis;	//從上一次分配成功的后一個(gè)空閑塊開始查找
	do{		//查找足夠大的空閑塊來分配
		if(p->State==0&&p->Lenth>=Lenth) 
			break;
		else
		{
			if(p->next!=Tail)
				p=p->next;
			else
			{
				p=Head->next;
				Flag=1;
			}
		}
	}while(p!=PriDis);
	if(Flag&&p==PriDis)     //沒有足夠的空間分配給當(dāng)前作業(yè)
	{	
		printf("\n\t\tThe free memory is not enough for this job!!\n");
		printf("\nPlease press any key to continue......\n");
		getchar();
		return; 
	}
	if((p->Lenth-Lenth)>SIZE) //如果空閑塊比作業(yè)所需空間大,則分裂結(jié)點(diǎn)
	{
		temp=GetSpace(MEM);
		strcpy(temp->Name,Name);  //添加新結(jié)點(diǎn)的相關(guān)參數(shù)
		temp->MemAdr=p->MemAdr;
		//printf("\n \t\t!!!! The allotted address of job %s is: %d !!!!\n",j->Name,temp->MemAdr);
		temp->Lenth=Lenth;
		temp->State=1;

		p->prior->next=temp;  //插入新結(jié)點(diǎn)
		temp->prior=p->prior;
		temp->next=p;
		p->prior=temp;

		p->MemAdr=p->MemAdr+temp->Lenth; //修改分裂后的剩余結(jié)點(diǎn)信息
		p->Lenth -= temp->Lenth;
		PriDis=p;
	}
	else    //否則不用分裂,直接把整個(gè)空閑塊分配給作業(yè)
	{
		strcpy(p->Name,Name);
		p->State=1;
		if(p->next!=Tail)
			PriDis=p->next;
		else
			PriDis=Head->next;
		//printf("\n \t\t!!!! The allotted address of job %s is: %d !!!!\n",j->Name,p->MemAdr);
	}
}

void Reclaim()
{
	MEM *temp1,*temp2,*p;
	char Name[10];
	printf("\n Name of the job:   "); 
	scanf("%s",Name);
	getchar();
	p=Head->next;
	while(p!=Tail&&strcmp(p->Name,Name)!=0)  //查找需要釋放的作業(yè)
		p=p->next;	
	if(p==Tail)
	{
		printf("\n\t\tThis job is not in the memory!!");
		printf("\nPlease press any key to continue......\n");
		getchar();
		return; 
	}
	if(p->prior->State==0&&p->next->State==0)  
	{  //將要釋放的內(nèi)存塊的前后內(nèi)存塊都為空閑,合并
		if(PriDis==p->next)		//合并后要修改指向下一次應(yīng)分配的空閑塊的
			PriDis=p->prior;	//指針,適應(yīng)循環(huán)首次適應(yīng)算法的要求
		temp1=p;
		temp2=p->next;
		p->prior->next=temp2->next;
		temp2->next->prior=p->prior;
		p->prior->Lenth += temp1->Lenth + temp2->Lenth;
		free(temp1);
		free(temp2);
	}
	else if(p->prior->State==1&&p->next->State==0)
		{  //將要釋放的內(nèi)存塊的后內(nèi)存塊為空閑,合并
			if(PriDis==p->next)  //合并后要修改指向下一次應(yīng)分配的空閑塊的
				PriDis=p;        //指針,適應(yīng)循環(huán)首次適應(yīng)算法的要求
			temp2=p->next;
			p->next=temp2->next;
			temp2->next->prior=p;
			strcpy(p->Name,"NULL");
			p->Lenth += temp2->Lenth;
			p->State=0;
			free(temp2);
		}
	else if(p->prior->State==0&&p->next->State==1)
		{  //將要釋放的內(nèi)存塊的前內(nèi)存塊為空閑,合并
			temp1=p;
			p->prior->next=p->next;
			p->next->prior=p->prior;
			p->prior->Lenth += p->Lenth;
			free(temp1);
		}
	else if(p->prior->State==1&&p->next->State==1)
		{  //將要釋放的內(nèi)存塊的前后內(nèi)存塊都不為空閑,無需合并
			strcpy(p->Name,"NULL");
			p->State=0;
		}
}

void Choice()
{
	char CH;
	MEM *temp1,*temp2;
	temp1=Head;
	temp2=Head->next;
	while(1)
	{
		
		printf("\n		------------------");
		printf("\n		| 1.Apply a job  |");
		printf("\n		| 2.Cancel a job |");
		printf("\n		| 3.Exit	 |");
		printf("\n		------------------");
		printf("\n\n	Please make a choice:	");
		scanf("%c",&CH);
		switch(CH)
		{
		case '1':	Distribute();
					DispFreeMem(Head->next);   //顯示空閑鏈的狀態(tài)
					DispNotFreeMem(Head->next);//顯示作業(yè)占用內(nèi)存狀況
					break;
		case '2':	Reclaim();
					DispFreeMem(Head->next);   //顯示空閑鏈的狀態(tài)
					DispNotFreeMem(Head->next);//顯示作業(yè)占用內(nèi)存狀況
					break;
		case '3':	while(temp1!=NULL)
					{
						free(temp1);
						temp1=temp2;
						if(temp2!=NULL)
							temp2=temp2->next;
					}
					return;
		}
		printf("\nPlease press any key to continue......\n");
		getchar();
	}
}

void main()/*主函數(shù)*/
{
	MEM *s;
	printf("Please input the total number the memory:(K)   ");
	s=GetSpace(MEM);     //創(chuàng)建空閑鏈表
	scanf("%d",&s->Lenth);
	getchar();
	strcpy(s->Name,"NULL");
	s->MemAdr=0;s->State=0;
	//初始化空閑鏈的頭尾結(jié)點(diǎn)
	Head=GetSpace(MEM);	Tail=GetSpace(MEM);  
	Head->next=s;	Tail->next=NULL;
	s->prior=Head;	s->next=Tail;
	Tail->prior=s;
	Head->State=Tail->State=1;
	PriDis=Head->next;//第一次分配空閑塊時(shí),PriDis指向第一個(gè)空閑塊
	Choice();	//進(jìn)入主菜單進(jìn)行相應(yīng)操作	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
caoporen国产精品视频| 精品福利一二区| 91美女福利视频| 国产成人欧美日韩在线电影| 极品少妇xxxx精品少妇| 美日韩一区二区三区| 男人的天堂久久精品| 青青国产91久久久久久| 美女免费视频一区二区| 黑人巨大精品欧美黑白配亚洲| 日韩成人免费电影| 精品一区二区三区在线观看国产| 美女精品自拍一二三四| 激情文学综合丁香| 成人小视频免费在线观看| k8久久久一区二区三区| 91丨九色丨蝌蚪丨老版| 91福利视频网站| 欧美日韩国产一级片| 欧美一区二区久久久| 精品成人a区在线观看| 国产无人区一区二区三区| 国产精品久久二区二区| 一区二区在线观看不卡| 午夜久久久影院| 国内精品免费在线观看| av电影在线观看一区| 欧美日精品一区视频| 精品国精品自拍自在线| 国产精品久久久久久亚洲伦| 一区二区三区欧美久久| 欧美bbbbb| 成人av资源下载| 欧美调教femdomvk| 精品女同一区二区| 亚洲欧美国产77777| 天堂成人国产精品一区| 国产成人在线观看免费网站| 色综合色综合色综合色综合色综合| 欧日韩精品视频| 久久视频一区二区| 亚洲精品中文在线影院| 日韩1区2区日韩1区2区| 国产成人免费视频网站| 欧美亚洲日本一区| 久久众筹精品私拍模特| 亚洲黄色小视频| 极品少妇一区二区| 91高清视频免费看| 国产日韩在线不卡| 日韩不卡在线观看日韩不卡视频| 国产91高潮流白浆在线麻豆 | 天堂在线亚洲视频| 国产原创一区二区| 在线观看视频一区| 欧美国产精品久久| 秋霞av亚洲一区二区三| 色婷婷综合久久久中文字幕| 久久只精品国产| 偷拍一区二区三区四区| 成人免费电影视频| 日韩一区二区在线看| 亚洲欧美日韩中文播放| 国产一区欧美二区| 欧美久久一二区| 亚洲日本电影在线| 国产成人综合亚洲网站| 91精品欧美福利在线观看| 亚洲三级小视频| 国产精品一区免费视频| 日韩美女一区二区三区四区| 亚洲一二三四区不卡| 成人美女视频在线观看18| 日韩三级电影网址| 亚洲电影在线播放| 色综合久久中文字幕综合网| 国产日韩欧美在线一区| 久久精品理论片| 91精品国产高清一区二区三区| 亚洲色图视频网| 成人综合在线观看| 久久久国产一区二区三区四区小说| 亚洲777理论| 欧美在线观看一区| 亚洲欧洲制服丝袜| www.在线欧美| 中文字幕亚洲视频| 国产+成+人+亚洲欧洲自线| 欧美精品一区二区三区久久久| 天天综合网天天综合色| 欧美日韩一卡二卡三卡 | 国产原创一区二区三区| 日韩欧美国产三级电影视频| 天天影视涩香欲综合网| 精品视频999| 亚洲五码中文字幕| 欧美三级乱人伦电影| 亚洲国产中文字幕| 欧美色倩网站大全免费| 亚洲一区免费在线观看| 欧美三级日韩三级| 三级影片在线观看欧美日韩一区二区| 欧美吻胸吃奶大尺度电影| 亚洲一区中文日韩| 欧美色涩在线第一页| 亚洲丰满少妇videoshd| 777xxx欧美| 麻豆高清免费国产一区| 日韩欧美电影在线| 国产毛片精品国产一区二区三区| 亚洲精品在线三区| 国产一区二区三区在线观看免费| 久久久久99精品国产片| 国产乱码精品一区二区三区av| 久久久精品天堂| 成年人国产精品| 亚洲欧洲综合另类| 欧美日韩在线三级| 免费观看在线色综合| 久久久亚洲精品石原莉奈| 国产91高潮流白浆在线麻豆| 自拍偷拍亚洲综合| 欧美日韩一区在线| 麻豆精品在线播放| 久久精品无码一区二区三区| 不卡的av在线播放| 亚洲一区二区三区四区在线观看| 欧美日韩不卡一区二区| 精品综合免费视频观看| 亚洲国产成人一区二区三区| 日本精品一级二级| 奇米影视一区二区三区小说| 久久综合九色综合欧美就去吻 | 亚洲国产一区二区a毛片| 欧美日韩国产影片| 蜜臀久久久久久久| 337p粉嫩大胆噜噜噜噜噜91av| 国产成人小视频| 亚洲天堂免费看| 日韩欧美国产小视频| www.欧美.com| 日本vs亚洲vs韩国一区三区 | 日本高清不卡一区| 一区二区三区在线视频免费| 色综合一个色综合| 亚洲成在线观看| 日韩一区二区三区视频| 黑人巨大精品欧美一区| 欧美激情一区二区三区不卡| a美女胸又www黄视频久久| 亚洲人成小说网站色在线| 色欧美日韩亚洲| 五月天激情综合| www国产精品av| 成人av在线播放网站| 一区二区三区四区国产精品| 欧美日韩一卡二卡三卡| 精品一区二区在线视频| 中文字幕乱码久久午夜不卡| 色天使久久综合网天天| 日韩主播视频在线| 久久久综合精品| 在线观看日韩毛片| 久久电影网电视剧免费观看| 国产精品麻豆视频| 91成人网在线| 免费日韩伦理电影| 国产日产欧美一区二区视频| 91在线播放网址| 日韩在线播放一区二区| 国产亚洲一区二区三区| 91丝袜国产在线播放| 免费观看30秒视频久久| 国产精品久久久久国产精品日日| 欧美日韩国产精品自在自线| 国产呦精品一区二区三区网站| 亚洲视频在线一区观看| 日韩视频在线永久播放| 高清shemale亚洲人妖| 亚洲一二三区在线观看| 国产日韩欧美亚洲| 欧美日韩激情一区二区| 国产精品一二一区| 午夜影院久久久| 亚洲国产精品黑人久久久| 欧美精品在线一区二区三区| 国产成a人无v码亚洲福利| 视频精品一区二区| 亚洲精选视频免费看| 久久久久久久久久久久久久久99 | 久久久久国产免费免费| 欧美视频一区二区三区在线观看| 国产乱对白刺激视频不卡| 亚洲国产精品久久不卡毛片 | 亚洲欧洲一区二区三区| 欧美va亚洲va香蕉在线| 欧美系列日韩一区| 不卡的av电影| 老司机一区二区| 日韩av电影免费观看高清完整版 |