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

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

?? mbtlist.cpp

?? 內存管理
?? CPP
字號:
#include "stdafx.h"
#include "MBTList.h"
#include <iostream.h>
MBTList::MBTList()
{
	headMBT = 0;
	tailMBT = 0;
	len = 0;
	count = 0;
}
MBTList::~MBTList()
{
	if(IsEmpty())
	{
		return;
	}
	MBT *tempMBT = tailMBT;
	while(tempMBT != 0 && tailMBT->preMBT != 0)
	{
		tempMBT = tailMBT->preMBT;
		delete tailMBT;
		tailMBT = tempMBT;
	}
	if(tailMBT->preMBT == 0)
		delete tailMBT;
}
bool MBTList::InsertHeadMBT(MBT *mbt)//插入第一個存儲塊
{
	bool result = false;
	if(IsEmpty() == true)
	{
		result = true;
		headMBT = mbt;
		tailMBT = mbt;
		headMBT->nextMBT = 0;
		tailMBT->preMBT = 0;
	}
	return result;
}
bool MBTList::InsertAfterHead(MBT *mbt)//在第一個存儲塊的后面添加一個存儲塊
{
	bool result = false;
	if(IsOnlyOne() == true)
	{
		result = true;
		headMBT->preMBT = 0;
		headMBT->nextMBT = mbt;
		mbt->nextMBT = 0;
		mbt->preMBT = headMBT;
		tailMBT = mbt;
	}
	else if(IsEmpty() == false)
	{
		result = true;
		headMBT->nextMBT->preMBT = mbt;
		mbt->preMBT = headMBT;
		mbt->nextMBT = headMBT->nextMBT;
		headMBT->nextMBT = mbt;
	}
	return result;
}
bool MBTList::InsertAfterTail(MBT *mbt)//在最后一個存儲塊的后面添加一個存儲塊
{
	bool result = false;
	if(IsEmpty() == false)
	{
		result = true;
		tailMBT->nextMBT = mbt;
		mbt->preMBT = tailMBT;
		tailMBT = mbt;
		tailMBT->nextMBT = 0;
		headMBT->preMBT = 0;
	}
	return result;
}
bool MBTList::InsertBeforeHead(MBT *mbt)//在第一個存儲塊前插入一個存儲塊
{
	bool result = false;
	if(IsEmpty() == false)
	{
		result = true;
		headMBT->preMBT = mbt;
		mbt->nextMBT = headMBT;
		headMBT = mbt;
		headMBT->preMBT = 0;
		tailMBT->nextMBT = 0;
	}
	return result;
}
bool MBTList::InsertBeforeTail(MBT *mbt)//在最后一個存儲塊的前面插入一個存儲塊
{
	bool result = false;
	if(IsOnlyOne() == true)
	{
		result = true;
		tailMBT->preMBT = mbt;
		tailMBT->nextMBT = 0;
		mbt->nextMBT = tailMBT;
		mbt->preMBT = 0;
		headMBT = mbt;
	}
	else if(IsEmpty() == false)
	{
		result = true;
		tailMBT->preMBT->nextMBT = mbt;
		mbt->nextMBT = tailMBT;
		mbt->preMBT = tailMBT->preMBT;
		tailMBT->preMBT = mbt;
	}
	return result;
}
bool MBTList::IsEmpty()//判斷是否為空
{
	bool result = false;
	if(count == 0)
		result = true;
	return result;
}
bool MBTList::IsOnlyOne()//判斷是否只有一個存儲塊
{
	bool result = false;
	if(count == 1)
		result = true;
	return result;
}


bool MBTList::InsertMBT(MBT *mbt, int sort)
{
	mbt->nextMBT = 0;
	mbt->preMBT = 0;
	bool result = InsertHeadMBT(mbt);
	if(result == false)
	{
		MBT *tempMBT = headMBT;
		while(tempMBT != 0 && result == false)
		{
			int cur = 0, temp = 0;
			switch(sort)
			{
				case 1://按照地址從低到高的順序
					cur = mbt->startAdd;
					temp = tempMBT->startAdd;
					break;
				case 2://按照存儲塊長度由小到大
					cur = mbt->len;
					temp = tempMBT->len;
					break;
				case 3://按照存儲塊長度由大到小
					cur = tempMBT->len;
					temp = mbt->len;
					break;
				default:
					cout << "數據有誤!" << endl;
					return false;

			}
			if(cur < temp)
			{
				if(tempMBT == headMBT)
				{
					result = InsertBeforeHead(mbt);
				}
				else if(tempMBT == tailMBT)
				{
					result = InsertBeforeTail(mbt);
				}
				else
				{
					result = true;
					tempMBT->preMBT->nextMBT = mbt;
					mbt->preMBT = tempMBT->preMBT;
					tempMBT->preMBT = mbt;
					mbt->nextMBT = tempMBT;
				}
			}
			else if(cur == temp)
			{
				result = InsertMBT(tempMBT, mbt);
			}
			tempMBT = tempMBT->nextMBT;
		}
	}
	if(result == false)
	{
		result = InsertAfterTail(mbt);
	}
	count++;
	len = len + mbt->len;
	return result;
}
	

bool MBTList::InsertMBT(MBT *tempMBT, MBT *mbt)
{
	
	bool result = false;
	MBT *curMBT = tempMBT;
	while(tempMBT != 0 && tempMBT->len == mbt->len)
	{
		if(tempMBT->startAdd > mbt->startAdd)
		{
			if(tempMBT == headMBT)
			{
				result = InsertBeforeHead(mbt);
			}
			else if(tempMBT == tailMBT)
			{
				result = InsertBeforeTail(mbt);
			}
			else
			{
				result = true;
				tempMBT->preMBT->nextMBT = mbt;
				mbt->preMBT = tempMBT->preMBT;
				mbt->nextMBT = tempMBT;
				tempMBT->preMBT = mbt;
			}
			break;
		}
		curMBT = tempMBT;
		tempMBT = tempMBT->nextMBT;
	}
	if(result == false && curMBT != 0)
	{
		if(curMBT == tailMBT)
		{
			result = InsertAfterTail(mbt);
		}
		else
		{
			result = true;
			curMBT->nextMBT->preMBT = mbt;
			mbt->nextMBT = curMBT->nextMBT;
			mbt->preMBT = curMBT;
			curMBT->nextMBT = mbt;
		}
	}
	return result;
}
void MBTList::Print()
{
	cout << "起始地址" << "   " << "長度" << "  " << "進程名稱" << endl;
	MBT *tempMBT = headMBT;
	while(tempMBT != 0)
	{
		cout << tempMBT->startAdd << "   " << tempMBT->len << "  ";
		if(tempMBT->curPCB != 0)
			cout << tempMBT->curPCB->name;
		cout << endl;
		tempMBT = tempMBT->nextMBT;
	}
}

MBT* MBTList::Destribute(PCB *pcb)
{
	MBT *get = 0;
	MBT *tempMBT = headMBT;
	while(tempMBT != 0)
	{
		if(tempMBT->len >= pcb->len)
		{
			int pL = tempMBT->len - pcb->len;
			tempMBT->len = pcb->len;
			int stAdd = tempMBT->startAdd + tempMBT->len;
			get = new MBT(1, pcb);
			get->startAdd = tempMBT->startAdd;
			get->len = pcb->len;
			tempMBT->startAdd = stAdd;
			tempMBT->len = pL;
			break;
		}
		tempMBT = tempMBT->nextMBT;
	}
	return get;
}
void MBTList::Delete(MBT *mbt)
{
	MBT *tempMBT = headMBT;
	while(tempMBT != 0)
	{
		if(tempMBT == mbt)
		{
			tempMBT->preMBT->nextMBT = tempMBT->nextMBT;
			tempMBT->nextMBT->preMBT = tempMBT->preMBT;
			break;
		}
		tempMBT = tempMBT->nextMBT;
	}
}
MBT* MBTList::Recyle(char *n)
{
	MBT *get = 0;
	MBT *tempMBT = headMBT;
	while(tempMBT != 0)
	{
		if(tempMBT->curPCB->name == n)
		{
			get = tempMBT;
			Delete(get);
			break;
		}
		tempMBT = tempMBT->nextMBT;
	}
	return get;
}

void MBTList::UnionMBT(MBT *mbt, int sort)
{
	InsertMBT(mbt, sort);
	MBT *tempMBT = headMBT;
	bool result = false;
	while(tempMBT != 0)
	{
		if(tempMBT->nextMBT != 0)
		{
			if(tempMBT->startAdd + tempMBT->len == tempMBT->nextMBT->startAdd)
			{
				result = true;
				MBT *delMBT = 0;
				tempMBT->flag = 0;
				tempMBT->curPCB = 0;
				tempMBT->len = tempMBT->len + tempMBT->nextMBT->len;
				if(tempMBT->nextMBT->nextMBT != 0)
				{
					tempMBT->nextMBT->nextMBT->preMBT = tempMBT;
					delMBT = tempMBT->nextMBT;
					tempMBT->nextMBT = tempMBT->nextMBT->nextMBT;
				}
				delete delMBT;
			}
			else
			{
				if(result == true)return;
				tempMBT = tempMBT->nextMBT;
			}
		}
		else
		{
			tempMBT = tempMBT->nextMBT;
		}
	}
}




















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品欧美精品| 国产欧美中文在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 五月综合激情婷婷六月色窝| 最好看的中文字幕久久| 国产精品免费人成网站| 国产精品免费人成网站| 亚洲男人天堂av网| 日韩高清不卡一区| 国产一区三区三区| 北岛玲一区二区三区四区| 972aa.com艺术欧美| 在线观看免费亚洲| 日韩三级在线免费观看| www日韩大片| 最新高清无码专区| 日韩一区精品字幕| 高清国产一区二区| 欧美午夜影院一区| 2024国产精品| 亚洲美女淫视频| 美女视频一区二区三区| 成人午夜短视频| 666欧美在线视频| 国产欧美精品一区aⅴ影院 | 成人高清视频免费观看| 色综合久久综合| 欧美一区二区日韩一区二区| 久久色成人在线| 亚洲曰韩产成在线| 国产乱码精品一品二品| 92国产精品观看| 日韩一区二区三| 亚洲私人黄色宅男| 免费高清视频精品| 91日韩在线专区| 精品成人一区二区| 亚洲一区二区av在线| 成人永久aaa| 欧美成人三级在线| 一个色妞综合视频在线观看| 国产成人在线网站| 日韩一区二区高清| 亚洲一二三四久久| 成人18精品视频| 欧美不卡123| 天天射综合影视| 色婷婷精品大视频在线蜜桃视频 | 91亚洲精华国产精华精华液| 欧美本精品男人aⅴ天堂| 亚洲成av人片一区二区梦乃| 国产不卡视频在线播放| 欧美成人bangbros| 日本vs亚洲vs韩国一区三区二区| 91丨porny丨首页| 欧美激情一区在线| 国产成人在线视频网址| 精品精品欲导航| 免费高清成人在线| 51久久夜色精品国产麻豆| 一区二区三区成人在线视频| 成人国产精品免费网站| 久久久久久久久久久久电影| 日本免费在线视频不卡一不卡二| 色婷婷激情一区二区三区| 自拍av一区二区三区| 成人免费的视频| 欧美国产成人精品| www.亚洲激情.com| 国产精品国产三级国产有无不卡| 国产成人av电影在线播放| 久久久国产一区二区三区四区小说 | 欧美三区在线观看| 亚洲一区二区三区四区在线免费观看 | 91精彩视频在线| 一区二区三区在线免费播放| aaa欧美大片| 亚洲黄色性网站| 欧美亚洲一区三区| 肉丝袜脚交视频一区二区| 制服丝袜中文字幕一区| 蓝色福利精品导航| 国产午夜精品久久| 99久久精品国产一区二区三区 | 亚洲国产精品久久久久婷婷884 | 久久国产夜色精品鲁鲁99| 日韩欧美一区二区久久婷婷| 国产在线视频不卡二| 国产日韩欧美精品电影三级在线| 丁香激情综合五月| 一区二区不卡在线播放| 欧美疯狂做受xxxx富婆| 激情欧美日韩一区二区| 国产精品免费久久久久| 欧洲一区在线电影| 免费的成人av| 国产精品三级电影| 色综合久久综合中文综合网| 日韩精品电影一区亚洲| 国产三级一区二区| 日本乱人伦aⅴ精品| 久久精品国产亚洲高清剧情介绍| 久久久精品综合| 一本久久综合亚洲鲁鲁五月天| 午夜不卡在线视频| 国产精品伦理在线| 91精品在线免费| www.视频一区| 久久99国产精品久久99果冻传媒| 国产精品久久久久aaaa| 884aa四虎影成人精品一区| 国产成人午夜99999| 亚洲国产精品一区二区尤物区| 久久亚洲综合色| 欧美日韩国产一区| 成人毛片在线观看| 韩国av一区二区三区在线观看| 亚洲乱码日产精品bd| 久久免费美女视频| 4438亚洲最大| 欧美性猛交xxxx乱大交退制版 | 91在线观看成人| 久草在线在线精品观看| 尤物在线观看一区| 国产精品电影院| 日韩三级.com| 欧美日韩亚洲高清一区二区| bt欧美亚洲午夜电影天堂| 国产精品中文欧美| 免费看日韩a级影片| 亚洲大尺度视频在线观看| 亚洲欧美日韩中文播放 | 7777精品伊人久久久大香线蕉 | 午夜亚洲福利老司机| 国产精品萝li| 中文字幕欧美区| 26uuu亚洲婷婷狠狠天堂| 91麻豆精品国产91久久久久久久久| 91日韩精品一区| eeuss鲁片一区二区三区| 国产99精品国产| 成人综合激情网| 从欧美一区二区三区| 国产精品一区二区久久不卡| 久久99国产精品成人| 久久激情五月婷婷| 久久国产尿小便嘘嘘| 久久97超碰国产精品超碰| 看国产成人h片视频| 九色综合狠狠综合久久| 麻豆91精品91久久久的内涵| 三级久久三级久久| 老色鬼精品视频在线观看播放| 久久av老司机精品网站导航| 美女视频一区二区| 国产一区二区三区久久悠悠色av| 奇米888四色在线精品| 美国精品在线观看| 国产一区二区不卡| 91在线观看成人| 欧美日韩国产高清一区| 91精品国产一区二区| 精品国产青草久久久久福利| 国产午夜精品在线观看| 最近中文字幕一区二区三区| 亚洲小说欧美激情另类| 男男成人高潮片免费网站| 寂寞少妇一区二区三区| 国产不卡免费视频| 日本精品一区二区三区高清| 欧美精品黑人性xxxx| 久久久久国产精品厨房| 亚洲欧美另类小说视频| 亚洲3atv精品一区二区三区| 日本视频中文字幕一区二区三区| 老汉av免费一区二区三区| www.亚洲精品| 欧美一区二区不卡视频| 国产欧美精品在线观看| 亚洲国产aⅴ成人精品无吗| 久久99精品国产.久久久久| 白白色 亚洲乱淫| 欧美丰满高潮xxxx喷水动漫| 欧美国产一区在线| 天堂va蜜桃一区二区三区漫画版 | 91首页免费视频| 日韩一级片在线观看| 国产精品久久久久一区 | 亚洲欧美一区二区不卡| 午夜精品福利久久久| 国产宾馆实践打屁股91| 欧美性xxxxx极品少妇| 国产欧美日韩精品一区| 日韩高清电影一区| 91麻豆精东视频| 久久精品视频免费| 青青青爽久久午夜综合久久午夜| www.性欧美| 中文字幕免费一区| 美女视频一区二区|