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

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

?? bptree.h

?? our homework big project
?? H
?? 第 1 頁 / 共 3 頁
字號:
		for(m_nodeposition=m_noderoot;m_nodeposition!=end;m_nodeposition=m_nodeposition->p_next)
		{
			for(int j=0;j<m_nodeposition->no;j++)
				no.push_back(m_nodeposition->p_leaf_next[j]);
		}
		for(int x=0;x<=i;x++)
			no.push_back(m_nodeposition->p_leaf_next[x]);
		
	}
	return no;
}


//----------------尋找<-----------------


template<class T>
vector<int> Node<T>::Ssearch(T & key)
{
	bool f=false;int i;
	node* end;
	vector<int> no;
	Leaf_dfind(key);
	for(m_nodehead=m_noderoot;m_nodehead!=NUll;m_nodehead=m_nodehead->p_node_next[0])
		;
	for(i=0;i<m_nodeposition->no;i++)				//找到在節(jié)點中的位置
	{
		if(compare(ckey,m_nodeposition->key[i])==0)
			{f=true;end=m_nodeposition;break;}
	}
	if(f==ture)
	{
		for(m_nodeposition=m_noderoot;m_nodeposition!=end;m_nodeposition=m_nodeposition->p_next)
		{
			for(int j=0;j<m_nodeposition->no;j++)
				no.push_back(m_nodeposition->p_leaf_next[j]);
		}
		for(int x=0;x<i;x++)
			no.push_back(m_nodeposition->p_leaf_next[x]);
		
	}
	return no;
}

//---------------數(shù)據(jù)插入函數(shù)---------------


template<class T>
void Node<T>::Insert_node(T & key,const int & n)
{
	Leaf_ifind(key);
	bool f=false;	

	if(m_total==0)										//當數(shù)據(jù)被刪完時的情況           
	{
		
		m_noderoot->key[0]=key;
		m_noderoot->p_leaf_next[0]=n;
		m_noderoot->no=1;
		m_total=1;
	}
	else												//還有數(shù)據(jù)
	{
		for(int i=0;i<m_nodeposition->no;i++)			//插入數(shù)據(jù)比最大值小,找到在葉節(jié)點中的位置
		{
			if(compare(key,m_nodeposition->key[i])==-1)	//找到后,后面的數(shù)據(jù)后移
			{
				for(int j=m_nodeposition->no;j>i;j--)
				{
					m_nodeposition->key[j]=m_nodeposition->key[j-1];
					m_nodeposition->p_leaf_next[j]=m_nodeposition->p_leaf_next[j-1];
				}
				m_nodeposition->key[i]=key;
				m_nodeposition->p_leaf_next[i]=n;
				f=true;
				break;
			}
		}
		if(f==false)										//數(shù)據(jù)比最大值大,直接插到最后
		{
			m_nodeposition->key[m_nodeposition->no]=key;
			m_nodeposition->p_leaf_next[m_nodeposition->no]=n;
		}
		if(m_nodeposition->no<N-1)							//節(jié)點未滿,節(jié)點的數(shù)據(jù)個數(shù)+1后退出
			m_nodeposition->no+=1;
		else												//節(jié)點已滿,進行節(jié)點分裂		
			Resize_leaf();
		m_total++;
	}
	m_opf=true;
}


//--------------分裂葉節(jié)點----------------


template<class T>
void Node<T>::Resize_leaf()
{

	bool f=false;
	node* new_node=new node;

	Ini(new_node);

	//葉節(jié)點分裂

	
	//分為兩個葉節(jié)點
	
	for(int i=N/2+1;i<N;i++)
	{
		new_node->key[i-N/2-1]=m_nodeposition->key[i];
		new_node->p_leaf_next[i-N/2-1]=m_nodeposition->p_leaf_next[i];
	}

	//處理橫向連接及其他數(shù)值

	if(m_nodeposition->p_next!=NULL)					
	{
		if(m_nodeposition->p_next->p_next!=NULL)
		{
			new_node->brother=m_nodeposition->brother;
			m_nodeposition->brother=new_node;
		}
		else
		{
			new_node->brother=m_nodeposition->brother;
			m_nodeposition->brother=new_node;
			m_nodeposition->p_next->brother=new_node;
		}
	}
	else
	{
		m_nodeposition->brother=new_node;
		new_node->brother=m_nodeposition;
	}
	new_node->p_next=m_nodeposition->p_next;
	m_nodeposition->p_next=new_node;
	new_node->flag=1;
	m_nodeposition->no=N/2+1;
	new_node->no=N/2;

	for(i=N/2+1;i<N;i++)						//數(shù)據(jù)以后復位為NULL
	{
		m_nodeposition->key[i]=NULL;
		m_nodeposition->p_leaf_next[i]=NULL;
	}

	//自己是根結點的情況

	if(Isroot(m_nodeposition)==1)
	{
		node* root=new node;
		Ini(root);
		root->key[0]=m_nodeposition->key[N/2];
		root->key[1]=new_node->key[N/2-1];
		root->p_node_next[0]=m_nodeposition;
		root->p_node_next[1]=new_node;
		root->no=2;
		m_nodeposition->p_fathernode=new_node->p_fathernode=root;
		m_noderoot=root;
	}

	//非根結點的情況

	else
	{
		node* po=m_nodeposition->p_fathernode;
		for(i=0;i<po->no;i++)
		{
			if(compare(new_node->key[N/2-1],po->key[i])==0)
			{
				f=true;
				for(int j=po->no;j>i;j--)
				{
					po->key[j]=po->key[j-1];
					po->p_node_next[j]=po->p_node_next[j-1];
				}
				po->key[i]=m_nodeposition->key[N/2];
				po->p_node_next[i]=m_nodeposition;
				po->p_node_next[i+1]=new_node;
			}
			if(f==true)	break;
		}
		//父節(jié)點數(shù)據(jù)未滿
		if(m_nodeposition->p_fathernode->no<N-1)
		{
			m_nodeposition->p_fathernode->no++;
			new_node->p_fathernode=m_nodeposition->p_fathernode;
		}

		//父節(jié)點數(shù)據(jù)已滿
		else
		{
			m_nodeposition=m_nodeposition->p_fathernode;
			Resize_nleaf();//分裂非葉節(jié)點(涉及遞歸)
		}
	}
}




//--------------分裂非葉節(jié)點---------------



template<class T>
void Node<T>::Resize_nleaf()
{
	node* new_node=new node;
	Ini(new_node);//初始化

	//把節(jié)點分開
	for(int i=N/2+1;i<N;i++)
	{ 
		new_node->key[i-(N/2)-1]=m_nodeposition->key[i];
		new_node->p_node_next[i-(N/2)-1]=m_nodeposition->p_node_next[i];
	}

	//處理橫向連接問題及其他數(shù)值

	if(m_nodeposition->p_next!=NULL)
	{
		if(m_nodeposition->p_next->p_next!=NULL)
		{
			new_node->brother=m_nodeposition->brother;
			m_nodeposition->brother=new_node;
		}
		else
		{
			new_node->brother=m_nodeposition->brother;
			m_nodeposition->brother=new_node;
			m_nodeposition->p_next->brother=new_node;
		}
	}
	else
	{
		m_nodeposition->brother=new_node;
		new_node->brother=m_nodeposition;
	}
	new_node->p_next=m_nodeposition->p_next;
	m_nodeposition->p_next=new_node;
	m_nodeposition->no=N/2+1;
	new_node->no=N/2;

	for(i=N/2+1;i<N;i++)						//移動后復位為NULL
	{
		m_nodeposition->key[i]=NULL;
		m_nodeposition->p_node_next[i]=NULL;
	}
	for(int x=0;x<N/2+1;x++)					//把子節(jié)點中的節(jié)點的父節(jié)點改過來						
	{
		m_nodeposition->p_node_next[x]->p_fathernode=m_nodeposition;
	}
	for(x=0;x<N/2;x++)							//----------------		
	{
		new_node->p_node_next[x]->p_fathernode=new_node;
	}

	//根據(jù)自己是不是根結點

	if(Isroot(m_nodeposition)==1)				//是根結點de情況
	{
		node* root=new node;
		Ini(root);
		root->key[0]=m_nodeposition->key[N/2];
		root->key[1]=new_node->key[N/2-1];
		root->p_node_next[0]=m_nodeposition;
		root->p_node_next[1]=new_node;
		root->no=2;
		m_nodeposition->p_fathernode=new_node->p_fathernode=root;
		m_noderoot=root;
	}

	else										//非根結點的情況
	{
		bool f=false;

		//把數(shù)據(jù)插入父節(jié)點

		node* po=m_nodeposition->p_fathernode;
		for(i=0;i<po->no;i++)
		{
			if(compare(new_node->key[N/2-1],po->key[i])==0)
			{
				f=true;
				for(int j=po->no;j>i;j--)
				{
		
					po->key[j]=po->key[j-1];
					po->p_node_next[j]=po->p_node_next[j-1];
				}
				po->key[i]=m_nodeposition->key[N/2];
				po->p_node_next[i]=m_nodeposition;
				po->p_node_next[i+1]=new_node;
			}
			if(f==true)break;
		}

		//根據(jù)父節(jié)點的數(shù)據(jù)個數(shù)

		if(m_nodeposition->p_fathernode->no<N-1)		//數(shù)據(jù)未被填滿
		{
			m_nodeposition->p_fathernode->no++;
			new_node->p_fathernode=m_nodeposition->p_fathernode; 
		}
		else											//數(shù)據(jù)已經(jīng)填滿
		{
			m_nodeposition=m_nodeposition->p_fathernode;
			Resize_nleaf();
		}
	}
}


//--------------刪除葉節(jié)點數(shù)據(jù)---------------


template<class T>
void Node<T>::Del_data(T & ckey)
{
	bool f=false;

	Leaf_dfind(ckey);									//所在的葉節(jié)點
	for(int i=0;i<m_nodeposition->no;i++)				//找到在節(jié)點中的位置
	{
		if(compare(ckey,m_nodeposition->key[i])==0)
		{f=true;break;}
	}
	T x=m_nodeposition->key[i];
	
	if(f==true)											//數(shù)據(jù)存在
	{
		del(x);
	}
	else cout<<"the date isn't exist\n";
	m_opf=true;
}


//----------------刪-除----------------


template<class T>
void Node<T>::del(T & k)
{
	bool f=false;

	for(int i=0;i<m_nodeposition->no;i++)			//找到在節(jié)點中的位置
	{
		if(compare(k,m_nodeposition->key[i])==0)break;
	}
	if(compare(m_nodeposition->key[i],m_nodeposition->key[i+1])==0)i++;

	if(Isroot(m_nodeposition)==1)					//根結點情況
	{
		if(Isleaf(m_nodeposition)==1)				//葉節(jié)點
		{
			if(m_nodeposition->no>1)				//多個數(shù)據(jù)
			{
				for(;i<m_nodeposition->no-1;i++)
				{
					m_nodeposition->key[i]=m_nodeposition->key[i+1];
					m_nodeposition->p_leaf_next[i]=m_nodeposition->p_leaf_next[i+1];
				}
				m_nodeposition->key[i]=NULL;
				m_nodeposition->p_leaf_next[i]=NULL;
				m_nodeposition->no--;
				m_total--;
			}
			else									//只有一個數(shù)據(jù),直接刪除
			{
				m_total=0;
				m_nodeposition->no=0;
				m_nodeposition->key[0]=NULL;
				m_nodeposition->p_leaf_next[0]=NULL;
			}
		}
		else										//非葉節(jié)點
		{
			for(;i<m_nodeposition->no-1;i++)
			{
				m_nodeposition->key[i]=m_nodeposition->key[i+1];
				m_nodeposition->p_node_next[i]=m_nodeposition->p_node_next[i+1];
			}
			m_nodeposition->key[i]=NULL;
			m_nodeposition->p_node_next[i]=NULL;
			m_nodeposition->no--;
			if(m_nodeposition->no<2)				//只剩兩個數(shù)據(jù)時
			{
				m_noderoot=m_noderoot->p_node_next[0];
				delete m_noderoot->p_fathernode;
				m_noderoot->p_fathernode=NULL;
			}
		}
	}
	else											//非根結點
	{
		if(Isleaf(m_nodeposition)==1)				//葉節(jié)點
		{
			for(;i<m_nodeposition->no-1;i++)
			{
				m_nodeposition->key[i]=m_nodeposition->key[i+1];
				m_nodeposition->p_leaf_next[i]=m_nodeposition->p_leaf_next[i+1];
			}
			m_nodeposition->key[i]=NULL;
			m_nodeposition->p_leaf_next[i]=NULL;
			m_total--;
		}
		else										//非葉節(jié)點
		{
			for(;i<m_nodeposition->no-1;i++)
			{
				m_nodeposition->key[i]=m_nodeposition->key[i+1];
				m_nodeposition->p_node_next[i]=m_nodeposition->p_node_next[i+1];
			}
			m_nodeposition->key[i]=NULL;
			m_nodeposition->p_node_next[i]=NULL;
		}
		m_nodeposition->no--;
		node* tp=m_nodeposition->p_fathernode;
		for(;Isroot(tp)==0;)
		{
			for(int j=0;j<tp->no;j++)
			{
				if(compare(k,tp->key[j])==0)
					tp->key[j]=m_nodeposition->key[m_nodeposition->no-1];
			}
			tp=tp->p_fathernode;
		}
		for(int j=0;j<tp->no;j++)
		{
			if(compare(k,tp->key[j])==0)
				tp->key[j]=m_nodeposition->key[m_nodeposition->no-1];
		}
	
		if(m_nodeposition->no<N/2)					//需要調(diào)整的
		{
			Merge();
		}
	}
}


//-------------重載刪除----------------
//-------------在合并調(diào)整中用-------------


template<class T>
void Node<T>::del(T & k,const T & t)
{
	bool f=false;

	for(int i=0;i<m_nodeposition->no;i++)						//找到在節(jié)點中的位置
	{
		if(compare(k,m_nodeposition->key[i])==0)break;
	}
	if(compare(m_nodeposition->key[i],m_nodeposition->key[i+1])==0)i++;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www久久精品| 国产精品乱码妇女bbbb| 欧美视频中文一区二区三区在线观看| 色综合色综合色综合 | 欧美日韩一区精品| 欧美精品在线视频| 国产精品丝袜久久久久久app| 亚洲欧美视频在线观看| 美国十次综合导航| 成人动漫视频在线| 欧美高清精品3d| 国产精品嫩草影院com| 奇米色777欧美一区二区| 成人小视频在线| 91精品国产一区二区| 国产三级久久久| 日本强好片久久久久久aaa| 成人高清av在线| 欧美成人免费网站| 日韩电影在线免费| 欧美日韩一区二区三区四区五区 | 国产成人综合在线| 国产美女娇喘av呻吟久久| k8久久久一区二区三区| 欧美tickling挠脚心丨vk| 亚洲免费伊人电影| 高清在线观看日韩| 欧美精品18+| 亚洲国产精品一区二区尤物区| 国产精品原创巨作av| 欧美午夜一区二区三区 | 精品综合免费视频观看| 在线观看av一区二区| 国产精品丝袜黑色高跟| 成人做爰69片免费看网站| 久久精品欧美一区二区三区不卡| 成人国产精品免费观看| 国产精品久久精品日日| 成人听书哪个软件好| 国产精品伦一区| 成人av先锋影音| 亚洲伦在线观看| 色成年激情久久综合| 亚洲综合色视频| 日韩精品一区在线| 成人久久18免费网站麻豆| 亚洲人精品午夜| 欧美一级一区二区| 波多野结衣中文字幕一区二区三区| 日韩一区欧美一区| 日韩限制级电影在线观看| 成人av电影在线| 日本va欧美va欧美va精品| 亚洲国产精品t66y| 欧美成人r级一区二区三区| 99re亚洲国产精品| 久久激情综合网| 亚洲午夜一区二区| 欧美极品另类videosde| 91精品国产综合久久精品app| 九九精品一区二区| 亚洲一二三级电影| 一区二区三区精品在线观看| 久久久久久99久久久精品网站| 91丨porny丨在线| 国产精品69毛片高清亚洲| 无码av免费一区二区三区试看 | 日本大胆欧美人术艺术动态 | 精品一区二区三区免费播放| 国产精品美女久久久久aⅴ| 26uuu久久综合| 日韩精品中文字幕在线不卡尤物 | 日日摸夜夜添夜夜添精品视频| 国产日韩av一区| 欧美变态口味重另类| 欧美美女一区二区在线观看| 色综合网色综合| 97久久精品人人做人人爽| 国产成人一区在线| 高清在线观看日韩| av不卡在线观看| 99re成人在线| 91精品黄色片免费大全| 欧美一级精品大片| 久久久噜噜噜久久中文字幕色伊伊| 国产日产精品一区| 亚洲永久免费av| 香蕉成人啪国产精品视频综合网 | www.亚洲免费av| 色综合天天性综合| 欧美男人的天堂一二区| 日韩欧美高清dvd碟片| 国产欧美久久久精品影院| 亚洲乱码国产乱码精品精可以看| 亚洲综合色网站| 国产一区中文字幕| 在线视频你懂得一区| 欧美嫩在线观看| 中文字幕电影一区| 亚欧色一区w666天堂| 粉嫩av一区二区三区在线播放| 成人性色生活片免费看爆迷你毛片| 成人小视频免费在线观看| 91在线观看成人| 日韩免费高清电影| 亚洲欧洲日产国码二区| 狠狠色综合播放一区二区| 91在线丨porny丨国产| 国产视频911| 日本不卡1234视频| 色美美综合视频| 国产亚洲精品bt天堂精选| 五月天一区二区三区| 激情文学综合网| 欧美男生操女生| 性做久久久久久| 欧美色倩网站大全免费| 国产精品私人自拍| 成人性生交大片免费看中文| 精品日韩99亚洲| 免费在线观看精品| 欧美日本一区二区在线观看| 中文字幕一区二区三区在线不卡 | 欧美色图一区二区三区| 亚洲视频一区二区在线| 不卡一区中文字幕| 亚洲欧美日韩中文字幕一区二区三区| 国产精品99久久不卡二区| 久久久久久亚洲综合| 国产精品一二三在| 国产偷国产偷精品高清尤物| 国产一区二区三区久久悠悠色av| 欧美一区二区三区视频在线 | 亚洲成av人片在www色猫咪| 成人国产免费视频| 中文字幕一区二区三区色视频| 成人免费三级在线| 亚洲欧洲成人自拍| 欧美在线啊v一区| 天天色 色综合| 久久综合久久综合久久| 国产又粗又猛又爽又黄91精品| 26uuu精品一区二区三区四区在线| 国产99久久久久| 一区二区三区丝袜| 精品国产伦一区二区三区观看体验 | 在线亚洲精品福利网址导航| 日本少妇一区二区| 亚洲视频一区在线观看| 精品国产乱码久久| 欧美成人a视频| 欧美精品亚洲一区二区在线播放| 成人av影视在线观看| 国产在线精品一区二区夜色| 亚洲第一在线综合网站| 日韩欧美亚洲一区二区| 91精品国产手机| 欧美男生操女生| 欧美日韩小视频| 精品亚洲国内自在自线福利| 香蕉成人啪国产精品视频综合网| 国产精品久久久久久久久久免费看| 91精品婷婷国产综合久久性色 | 欧美性感一区二区三区| 99精品久久只有精品| av一区二区三区| 99精品视频在线观看免费| 成人av网址在线观看| 欧美综合在线视频| 91精品国产综合久久精品| 91精品久久久久久蜜臀| 久久久久久久性| 亚洲欧美偷拍另类a∨色屁股| 国产日韩欧美不卡在线| 欧美国产精品v| 亚洲欧美一区二区久久| 奇米一区二区三区| 成人一二三区视频| 一本大道久久a久久精品综合| 在线精品视频一区二区三四| 欧美日韩精品综合在线| 欧美一级爆毛片| 国产精品午夜电影| 无码av中文一区二区三区桃花岛| 国内一区二区视频| 欧美日韩五月天| 精品国产3级a| 亚洲成人av一区| 粉嫩13p一区二区三区| 日本精品一区二区三区四区的功能| 欧美性受xxxx黑人xyx性爽| 国产欧美日韩视频一区二区| 日本不卡123| 欧美在线免费播放| 一区二区三区四区在线播放| 91在线视频免费观看| 欧美一区二区三区精品| 亚洲欧美国产高清| 国产毛片一区二区| 久久麻豆一区二区|