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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 周峰.cpp

?? 操作系統先適應法、最優適應法、最差適應法
?? CPP
字號:
#include<stdio.h>  
#include<iostream> 
using namespace std;                                                                                                                                         
#include"stdlib.h"
typedef struct area{
    int start;
    int length;
    int state;
    struct area *next;
}Area,*pArea;

const int Max=255;

void PrintMemoryState(Area *);
void FirstFit(Area *);
void BestFit(Area *);
void WorstFit(Area *);
void MaxLength(Area *);
int main()
{
    Area *work;
    Area *p;
	Area *p1;
	Area *p2;
	Area *p3;Area *p4;Area *p5;
    int Choice;
    //int start;
    pArea head=(Area *)malloc(sizeof(Area));//分配頭指針
	//extern void *malloc(unsigned int num_bytes)功能:分配長度為num_bytes字節的內存塊
    work=(Area *)malloc(sizeof(Area));
    head->start=0;
    head->length=0;
    head->state=1;
    head->next=NULL;
    //裝入系統
    printf(".............正在載入系統中..............\n");
    work->start=0;
	work->length=1;
	work->next=NULL;
	work->state=1;
    head->next=work;
    p=(Area *)malloc(sizeof(Area));
    p->start=1;
	p->length=32;
//	p->next=NULL;
	p->state=-1;
    work->next=p;
	p1=(Area *)malloc(sizeof(Area));
    p1->start=33;
	p1->length=16;
//	p1->next=NULL;
	p1->state=-1;
    p->next=p1;
	p2=(Area *)malloc(sizeof(Area));
    p2->start=49;
	p2->length=8;
//	p2->next=NULL;
	p2->state=-1;
    p1->next=p2;
	p3=(Area *)malloc(sizeof(Area));
    p3->start=57;
	p3->length=4;
	//p3->next=NULL;
	p3->state=-1;
    p2->next=p3;
    p4=(Area *)malloc(sizeof(Area));
    p4->start=61;
	p4->length=64;
//	p4->next=NULL;
	p4->state=-1;
    p3->next=p4;
    p5=(Area *)malloc(sizeof(Area));
    p5->start=125;
	p5->length=Max-125;
	p5->next=NULL;
	p5->state=-1;
    p4->next=p5;
    PrintMemoryState(head);//輸出當前的內存使用狀況
    //開始循環
    while(1)
    {
        printf(" 1.最先適應法;2.最優適應法;3.最差適應法;0.退出程序\n");
        printf("<CHOICE> #");
        scanf("%d",&Choice);//輸入你所要的選項。為choice 的值
        switch(Choice)
        {
            case 0:
                printf("The System Is Shutdown... \n");
                goto A;
            case 1:
                FirstFit(head);
                PrintMemoryState(head);//最先適應法
                continue;
			case 2:
                BestFit(head);
                PrintMemoryState(head);//最優適應法
                continue;
            case 3:
                WorstFit(head);
				PrintMemoryState(head);//最差適應法
                continue;              
            default:
                printf("Please input a right number!\n");
                break;
        }
    }
A:    return 0;
}
void PrintMemoryState(Area *head)
{
    int state=-1;
    Area *temp=(Area *)malloc(sizeof(Area));
    temp=head->next;
    printf("\t起始地址\t內存長度\t內存狀態\n");
	do
    {
        printf("\t%8d\t%8d\t%8d\n",temp->start,temp->length,temp->state);
        temp=temp->next;
    }while(temp/*->length+temp->start)*/!=NULL);
    printf("\t%8d\t%8d\t%8d\n",Max,0,state);
    return ;
}
void FirstFit(Area *head)//裝入作業,最先適應法
{
    int flag=0;//int sum=0;
    int lengthtemp;
	int a[3];
    Area *last=(Area *)malloc(sizeof(Area));
    Area *Task=NULL;
    Area *newFree=NULL;
	cout<<"請分別輸入需要分配內存的3個作業內存長度:"<<endl;
	for(int i=0;i<3;i++)
	{
		cin>>a[i];
	}
	for(i=0;i<3;)
	{
		int sum;int n=0;int b[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
		Task=head->next;
		while(Task!=NULL)
		{
			if(Task->state==1)
			{
				Task=Task->next;
			}
			else
			{
				b[n]=Task->length;
				Task=Task->next;
				n++;				
			}
		}
		delete Task;//把各個length裝入數組B
		sum=b[0];
		for(int j=0;j<n;j++)
		{

			if(sum<b[j+1])
				sum=b[j+1];
		}//sum取B[n]中的最大值
			
		if(a[i]>sum)
		{
			cout<<"a["<<i<<"]   作業過長,無法裝入 "<<endl;
			goto B;
			//exit(-1);
		}
		last=head->next;
		while(last!=NULL)
		{
			if(last->state==1)
			{
				last=last->next;

				continue;

			}//首先判斷占用情況,如果被占用則查看下一個內存塊

			else
			{
				if(last->length==a[i])
				{
					last->state=1;flag=1;
					goto B;
				}//等于的話直接裝入
				if(last->length>a[i])
				{
					lengthtemp=last->length;
					last->length=a[i];
					last->state=1;
					newFree=(Area *)malloc(sizeof(Area));
					newFree->next=last->next;
					newFree->start=last->start+last->length;
					newFree->length=lengthtemp-last->length;
					newFree->state=-1;
					last->next=newFree;//成功插入newFree節點

					flag=1;
					goto B;
				}
				if(last->length<a[i])//如果內存長度小于所給作業要占用的內存長度,則查看下一個內存塊
				{
					last=last->next;
					continue;
				}

			}//else結束
		} //while 結束
B:		i++;
	}
    if(flag==0)
    {
        printf("Cann't Load the Task! System will shutdown!\n");
        exit(-1);
    }
}
void WorstFit(Area *head)//裝入作業,最差適應法
{
    int lengthtemp;
	int a[3];
    Area *last=NULL;
    Area *newFree=NULL;
	cout<<"請分別輸入需要分配內存的3個作業內存長度:"<<endl;
	for(int i=0;i<3;i++)
	{
		cin>>a[i];
	}
	for(i=0;i<3;)
	{
	    Area *Task=NULL;
		last=head->next;
		Task=last->next;
		while(Task!=NULL)
		{
			if(Task->state==1)
				Task=Task->next;
			else
			{
				if(last->length<Task->length)
				{
					last=Task;
					Task=Task->next;
				}
				else Task=Task->next;
			}//last指向length最大的那塊
		}
//		int l=last->length;
//		cout<<l<<" 周    ";
		delete Task;
		if(a[i]>last->length)
		{
			cout<<"a["<<i<<"]   作業過長,無法裝入 "<<endl;
			goto C;
		}
		if(last->length==a[i])
		{
			last->state=1;
			goto C;
		}//等于的話直接裝入
		if(last->length>a[i])
		{
			lengthtemp=last->length;
			last->length=a[i];
			last->state=1;
			newFree=(Area *)malloc(sizeof(Area));
			newFree->next=last->next;
			newFree->start=last->start+last->length;
			newFree->length=lengthtemp-last->length;
			newFree->state=-1;
			last->next=newFree;//成功插入newFree節點
			goto C;
		}
C:	    i++;
	}
}
void BestFit(Area *head)//裝入作業,最優適應法
{
    int flag=0;
    int lengthtemp;
	int a[3];
    Area *last=(Area *)malloc(sizeof(Area));
    Area *newFree=NULL;
	Area *H=NULL;
	cout<<"請分別輸入需要分配內存的3個作業內存長度:"<<endl;
	for(int i=0;i<3;i++)
	{
		cin>>a[i];
	}

	for(i=0;i<3;)

	{
		int sum;int n=0;int b[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
		int d=0;
	    Area *Task=NULL;
		Area *p=NULL;
		last=head->next;
		Task=last;
		p=head->next;
		H=head->next;
		while(H!=NULL)
		{
			if(H->state==1)
			{
				H=H->next;
			}
			else
			{
				b[n]=H->length;
				H=H->next;
				n++;				
			}
		}
		delete H;//把各個length裝入數組B
		sum=b[0];
		for(int j=0;j<n;j++)
		{

			if(sum<b[j+1])
				sum=b[j+1];
		}//sum取B[n]中的最大值
			
		if(a[i]>sum)
		{
			cout<<"a["<<i<<"]   作業過長,無法裝入 "<<endl;
			goto C;
			//exit(-1);
		}

		while(last!=NULL)
		{

			if(last->state==1)
				last=last->next;
			else
			{
				if(a[i]>last->length)
					last=last->next;
				else if(a[i]==last->length)
				{
					last->state=1;
					goto C;
				}
				else if(a[i]<last->length)
				{
					Task=last;
					if(d==0)
					{
						p=Task;
						d++;
					}
					if(p->length>Task->length)
						p=Task;
					last=last->next;
				}

			}
		}
		lengthtemp=p->length;
		p->length=a[i];
		p->state=1;
		newFree=(Area *)malloc(sizeof(Area));
		newFree->next=p->next;
		newFree->start=p->start+p->length;
		newFree->length=lengthtemp-p->length;
		newFree->state=-1;
		p->next=newFree;//成功插入newFree節點
C:	    i++;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产第一综合99久久| 国产欧美日本一区二区三区| 精品国产免费久久| 国产精品美女久久久久aⅴ国产馆| 一区二区三区日韩精品视频| 国产在线精品一区二区| 欧美伊人久久大香线蕉综合69| 久久免费电影网| 夜夜嗨av一区二区三区中文字幕| 国产福利一区二区三区视频| 在线不卡a资源高清| 亚洲视频一区在线观看| 国产成人免费在线观看不卡| 884aa四虎影成人精品一区| 亚洲日本护士毛茸茸| 国产成人三级在线观看| 日韩精品最新网址| 日日夜夜精品视频免费 | 亚洲一卡二卡三卡四卡无卡久久| 国产一区二区三区视频在线播放| 在线播放一区二区三区| 亚洲精品日韩综合观看成人91| 高清日韩电视剧大全免费| 日韩亚洲欧美成人一区| 婷婷成人综合网| 欧美日韩免费一区二区三区视频| 亚洲视频一区二区在线| 成人午夜av影视| 国产精品视频一区二区三区不卡| 国产中文字幕精品| 欧美va亚洲va在线观看蝴蝶网| 亚洲成人三级小说| 欧美图片一区二区三区| 亚洲自拍偷拍综合| 欧美最猛黑人xxxxx猛交| 一区二区三区加勒比av| 日本道精品一区二区三区| 亚洲精品欧美激情| 91麻豆国产在线观看| 自拍偷在线精品自拍偷无码专区| 北条麻妃国产九九精品视频| 国产精品乱人伦一区二区| 风间由美一区二区三区在线观看| 欧美精品一区二区三区蜜臀 | 国产精品一区二区视频| 亚洲精品在线电影| 韩国成人福利片在线播放| 欧美一区二区在线看| 精品一区二区在线观看| 久久久蜜臀国产一区二区| 欧美图片一区二区三区| 亚洲一区在线视频| 欧美一区永久视频免费观看| 亚洲成人av电影在线| 欧美日韩国产a| 激情深爱一区二区| 精品日韩欧美一区二区| 成人一区二区三区中文字幕| 亚洲欧美日韩精品久久久久| 精品视频色一区| 精品一区二区三区视频| 中文字幕成人网| 欧美日韩一区中文字幕| 国内外成人在线| 亚洲人吸女人奶水| 日韩免费视频一区二区| 成人一道本在线| 五月综合激情婷婷六月色窝| www久久久久| 91麻豆精品在线观看| 日本不卡视频在线| 成人免费在线播放视频| 欧美肥妇毛茸茸| 国产福利不卡视频| 亚洲国产欧美日韩另类综合| 欧美成人性战久久| 色婷婷狠狠综合| 国产在线视频一区二区| 亚洲一区二区三区在线| 久久久噜噜噜久久人人看 | 国产欧美一区二区精品婷婷| 欧美日韩一级片在线观看| 国产一区二区剧情av在线| 亚洲激情一二三区| 精品噜噜噜噜久久久久久久久试看| 99久久精品免费看国产| 麻豆极品一区二区三区| 亚洲成人一区二区在线观看| 欧美成人猛片aaaaaaa| 色综合久久天天| 国产成人在线视频免费播放| 五月天久久比比资源色| 久久综合九色综合97婷婷女人 | 国产99精品视频| 日韩1区2区3区| 亚洲黄色av一区| 中文字幕av一区二区三区| 欧美成人在线直播| 欧美一二三区精品| 欧美在线免费视屏| 99精品久久只有精品| 国产高清视频一区| 精品午夜一区二区三区在线观看| 天天综合色天天| 一区二区三区91| 一区二区三区小说| 亚洲婷婷综合色高清在线| 亚洲国产高清在线观看视频| 欧美成人精品1314www| 欧美一级理论片| 久久老女人爱爱| 久久美女艺术照精彩视频福利播放 | 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲国产一区二区三区青草影视 | 亚洲成人三级小说| 亚洲午夜视频在线| 亚洲国产精品欧美一二99| 亚洲一区二区三区自拍| 亚洲综合在线免费观看| 尤物av一区二区| 亚洲免费色视频| 一区二区三区在线高清| 亚洲妇女屁股眼交7| 午夜伊人狠狠久久| 五月激情丁香一区二区三区| 日韩成人一级片| 久久精品国产99| 国产精品原创巨作av| 国产精品1区2区| www.欧美日韩国产在线| 色偷偷88欧美精品久久久| 欧美无人高清视频在线观看| 69久久夜色精品国产69蝌蚪网| 欧美精品日韩精品| 精品国产凹凸成av人网站| 久久久久久久精| 亚洲日本一区二区三区| 午夜欧美大尺度福利影院在线看| 日韩激情在线观看| 国产毛片精品视频| 成人动漫中文字幕| 欧美综合一区二区三区| 日韩一区二区三区四区| 国产日韩影视精品| 亚洲一区二区五区| 久久国产人妖系列| 成人激情黄色小说| 欧美日韩在线精品一区二区三区激情| 欧美肥妇free| 欧美经典一区二区| 一区二区三区不卡视频| 国产在线精品一区二区夜色| 99国产精品国产精品久久| 欧美性感一类影片在线播放| 精品1区2区在线观看| 亚洲欧美福利一区二区| 日韩综合在线视频| 丁香桃色午夜亚洲一区二区三区| 欧美性猛片xxxx免费看久爱| 精品国产一区二区亚洲人成毛片| 最新高清无码专区| 久久99久久久欧美国产| 色久综合一二码| 久久亚洲春色中文字幕久久久| 亚洲天堂中文字幕| 国模套图日韩精品一区二区 | 欧美精品欧美精品系列| 国产精品电影院| 蜜桃视频一区二区| 在线免费亚洲电影| 国产女人aaa级久久久级| 日本视频一区二区| 色天使久久综合网天天| 国产蜜臀av在线一区二区三区| 同产精品九九九| 91在线观看免费视频| 久久久久久久久久久久电影| 日本不卡一区二区三区高清视频| 91女神在线视频| 国产欧美精品一区| 国产又黄又大久久| 欧美一区二区女人| 无吗不卡中文字幕| 欧美图区在线视频| 亚洲另类在线一区| 99国产一区二区三精品乱码| 亚洲在线观看免费视频| 在线一区二区视频| 欧美国产一区二区| 另类中文字幕网| 91精品综合久久久久久| 亚洲小说春色综合另类电影| 99riav一区二区三区| 国产精品网站在线播放| 国产伦精品一区二区三区免费| 日韩一区二区三区在线视频| 视频在线观看一区二区三区| 在线观看不卡一区| 亚洲一区影音先锋| 欧美系列亚洲系列|