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

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

?? bptree.java

?? 詳細(xì)介紹了Btree的特性以及如何實現(xiàn) 適合初學(xué)者參考
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
		}
		else
		{
			currec = removeHelp((BpNode)node.recArray[currec].pointer, k, currec);
			if(currec == -1)
				return -1;
			else if(((BpNode)node.recArray[currec].pointer).count >1)
			{
/*				
				node.recArray[currec].key =
					((BpNode)node.recArray[currec].pointer).recArray[1].key;
*/				
				
				BpNode current = (BpNode)node.recArray[currec].pointer;
				
				while(!current.isLeaf())
				{
					current = (BpNode)current.recArray[0].pointer;
				}
				node.recArray[currec].key =
					current.recArray[1].key;
				
				return -1;
			}
		}
		
		//	從當(dāng)前節(jié)點刪除
		Comparable key = node.recArray[1].key;
		node.deleteAt(currec);
		
		if(node.isBigEnough())
			return -1;
		else
		{
			if(isFirstChild(node,key))
			{
				if(node.canMerge(node.rightSibling))
				{
					node.merge(node.rightSibling);
					return thispos +1;					
				}
				else
				{
					node.shuffle(node.rightSibling);
					return thispos+1;
				}		
				
			}
			
			else if(node.canMerge(node.leftSibling))
			{
				node.leftSibling.merge(node);
				return thispos;
			}
			else
			{
				node.leftSibling.shuffle(node);
				return thispos;
			}
		}
		
	}
	
	private Pair insertHelp(BpNode node, Elem rec)
	{
		Pair tmp;	//	存放一個 key/pointer 對
		int currec = node.maxLE(rec.key);
		
		if(node.isLeaf())
		{
			tmp = new Pair(rec.key, rec);
		}
		
		else
		{
			tmp = insertHelp((BpNode)node.recArray[currec].pointer, rec);
			if(tmp == null)
				return null;				
		}
		if(!node.isFull())
		{
			node.addAfter(currec, tmp);
		}
		else
		{
			BpNode tp =	node.split(currec, tmp);
			
			if(tp.isLeaf())
			{
				return new Pair(tp.recArray[1].key, tp);
			}
			else
			{
				Pair maxP = node.recArray[--node.count];	//	刪除了此Pair
				node.recArray[node.count] = null;
				tp.recArray[0].pointer = maxP.pointer;
				return new Pair(maxP.key, tp);
			}			
		}		
		return null;
	}
	
	
	
	public Elem find(Comparable k)
	{
		int currec = root.maxLE(k);
		BpNode current = root;
		
		while(!current.isLeaf())
		{		
			current = (BpNode)current.recArray[currec].pointer;
			currec = current.maxLE(k);
		}
		if(!current.recArray[currec].key.equals(k))
			return null;
		return (Elem)current.recArray[currec].pointer;
		
		
	}
	

	BpNode firstLeaf()
	{
		BpNode curr = root;
		while(!curr.isLeaf())
			curr = (BpNode)curr.recArray[0].pointer;
		
		return curr;
	}
	public boolean isFirstChild(BpNode node,Comparable k)
	{
		BpNode curr = root;
		
		int currec = curr.maxLE(k);
		while(curr.recArray[currec].pointer != node)
		{
			curr = (BpNode)curr.recArray[currec].pointer;
			currec = curr.maxLE(k);
		}
		return (currec == 0);
		
	}
	
	void print()
	{
		if(root == null)
		{
			System.out.println("Empty tree");
			return;
		}
		
		BpNode curr = firstLeaf();
		
		while(curr != null)
		{
			System.out.println(curr);
			curr = curr.rightSibling;
		}
		System.out.println("========================");
		
	}
	void printRev()
	{
		BpNode curr = firstLeaf();
		
		while(curr.rightSibling != null)
			curr = curr.rightSibling;
		
		while(curr != null)
		{
			System.out.println(curr);
			curr = curr.leftSibling;
		}
		System.out.println("===========");
		
	}

	
	public String toString()
	{
		if(root==null)
			return "Empty Tree!";
		
		String res ="";
		BpNode first = root;
		Object tmp = first;

		while(tmp instanceof BpNode)
		{		
			first = (BpNode)tmp;
			res += first +"\t";
			BpNode curr = first.rightSibling;
			while(curr!= null)
			{
				res += curr +"\t";
				curr = curr.rightSibling;
			}
			res += "\n";	
			tmp = first.recArray[0].pointer;
		}		
		return res;
		
		
		
	}
	
	
	static void f1()
	{
		int[] arr = {
				1,2,15,7,6,3,8,10,9,11,14,16,17,
		};
		BpTree tree = new BpTree();
		
		for(int i=0; i<arr.length; i++)
			tree.insert(arr[i]);
		

		System.out.println(tree);
		
		
		for(int i=0; i<20; i++)
			System.out.println(tree.find(i));
		
	}
	
	static void f2()
	{
		BpTree tree = new BpTree();
		
		int[] arr = RandomArray.randomArr(20);
		
		for(int i=0; i<arr.length; i++)
		{
			tree.insert(arr[i]);
//			tree.print();
		}
		tree.print();
		System.out.println("================");
		tree.printRev();
	}
	
	static void f3()
	{
		BpTree tree = new BpTree(7);
		
		int test = 1000;
		int[] arr1 = RandomArray.randomArr(test);
		int[] arr2 = RandomArray.randomArr(test);
		
		for(int i=0; i<arr1.length; i++)
			System.out.print(arr1[i]+",");
		System.out.println();

		for(int i=0; i<arr2.length; i++)
			System.out.print(arr2[i]+",");
		System.out.println();
		
		
		for(int i=0; i<arr1.length; i++)
			tree.insert(arr1[i]);
		
		System.out.println(tree);

		for(int i=0; i<arr2.length; i++)
		{
			tree.remove(arr2[i]);
		}

		System.out.println(tree);
	}
	static void f4()
	{
		BpTree tree = new BpTree();
		
		int[] arr1 = {34,9,43,26,12,14,31,27,37,35,23,47,19,39,22,44,16,7,18,24,40,6,11,41,21,49,32,5,28,1,17,3,45,10,42,33,25,30,15,50,36,8,38,13,4,29,46,20,48,2};
		int[] arr2 = {31,17,35,42,7,16,33,13,19,12,4,41,50,2,21,24,23,47,14,28,25,49,38,9,18,27,22,48,8,36,44,37,30,40,39,32,46,10,45,6,11,20,15,43,1,34,3,29,26,5};
				
		for(int i=0; i<arr1.length; i++)
			System.out.print(arr1[i]+",");
		System.out.println();

		for(int i=0; i<arr2.length; i++)
			System.out.print(arr2[i]+",");
		System.out.println();
		
		for(int i=0; i<arr1.length; i++)
		{
			tree.insert(arr1[i]);		
//			tree.print();
		}
		System.out.println(tree);

		for(int i=0; i<arr2.length; i++)
		{
			tree.remove(arr2[i]);
//			if(i%10 == 0)
			System.out.println(tree);
		}
		System.out.println(tree);
	}
	
	static void f5()
	{
		BpTree tree = new BpTree();
		
		int[] arr = RandomArray.randomArr(100);
		
		for(int i=0; i<arr.length; i++)
		{
			tree.insert(arr[i]);
//			tree.print();
		}
	
		tree.print();
		System.out.println(tree);
		
	}
	static void f6()
	{
		BpTree tree = new BpTree(8);
		String[] arr1 = RandomArray.randomStrArr();
		String[] arr2 = RandomArray.randomStrArr();
		
		for(int i=0; i<arr1.length; i++)
			System.out.print(arr1[i] + "\t");
		
		for(int i=0; i<arr1.length; i++)
		{
			tree.insert(arr1[i]);
			System.out.println(tree);
		}
		for(int i=0; i<arr2.length; i++)
		{
			Elem tmp =tree.find(arr2[i]);
			System.out.println("" + i +": "+tmp);
		}
		
		
			
		
	}
	
	public static void main(String[] args)
	{
		f6();
	}
	
}





class RandomArray
{
	static String[] initArr1 = 
	{
		"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t",
		"u","v","w","x","y","z"
	};
	static String[] initArr2 = 
	{
		"0","1","2","3","4","5","6","7","8","9"
	};
	static String[] initArr;
	static
	{
		initArr = new String[initArr1.length * initArr2.length];
		int k=0;
		for(int i=0; i<initArr1.length; i++)
		{
			for(int j=0; j<initArr2.length; j++)
				initArr[k++] = initArr1[i]+ initArr2[j];
		}
		
	}
	static int[] randomArr(int size)
	{
		int[] arr = new int[size];
		
		for(int i=0;i<arr.length; i++)
		{
			arr[i] = i+1;
		}
		
		for(int i=0; i< size*10; i++)
		{
			int r1 = (int)(Math.random()*size);
			int r2 = (int)(Math.random()*size);
			
			int tmp = arr[r1];
			arr[r1] = arr[r2];
			arr[r2] = tmp;			
		}	
		return arr;
	}
	static String[] randomStrArr()
	{	
		String[] arr = initArr;
		for(int i=0; i< arr.length*10; i++)
		{
			int r1 = (int)(Math.random()*arr.length);
			int r2 = (int)(Math.random()*arr.length);
			
			String tmp = arr[r1];
			arr[r1] = arr[r2];
			arr[r2] = tmp;			
		}	
		return arr;
		
	}
	/*
	public static void main(String[] args)
	{
		String[] arr = randomStrArr();
		for(int i=0; i<arr.length; i++)
			System.out.println(arr[i]);
	}*/
	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产经典色站一区二区三区| 欧美日本一区二区三区| 欧美精品乱码久久久久久按摩| 国产精品萝li| 国产一区不卡精品| 日韩精品一区二区三区三区免费| 亚洲成人你懂的| 在线看国产一区| 亚洲免费在线看| 99精品国产视频| 中文字幕一区日韩精品欧美| 国产夫妻精品视频| 久久久综合视频| 国产精品一区三区| 久久网这里都是精品| 国产一区二区视频在线| 久久久久久久网| 丁香桃色午夜亚洲一区二区三区| 久久精品视频在线看| 国产精品一二三四区| 久久精品一二三| 成人污污视频在线观看| 国产精品国产三级国产aⅴ原创| 国产aⅴ综合色| 中文字幕五月欧美| 日本精品一区二区三区高清| 亚洲人成在线播放网站岛国| 色哟哟在线观看一区二区三区| 亚洲欧美激情一区二区| 欧美亚洲精品一区| 五月天丁香久久| 精品少妇一区二区三区在线播放| 久久99国产精品尤物| 国产欧美一区二区精品秋霞影院 | 久久亚洲捆绑美女| 成人a免费在线看| 亚洲国产综合在线| 日韩精品一区二区三区在线观看| 国模一区二区三区白浆| 国产精品丝袜久久久久久app| 91免费版在线看| 免费人成黄页网站在线一区二区| 久久精品视频免费| 日本韩国欧美在线| 蜜臀99久久精品久久久久久软件| 国产校园另类小说区| 日本高清不卡在线观看| 日本不卡视频一二三区| 国产欧美日韩综合精品一区二区| 91在线精品一区二区| 婷婷开心激情综合| 久久综合一区二区| 色中色一区二区| 国产一区二区三区香蕉| 一区二区在线观看视频| 日韩视频免费直播| 97精品久久久久中文字幕| 天天av天天翘天天综合网 | 亚洲欧美偷拍卡通变态| 欧美男同性恋视频网站| 国产精品一二三四| 香蕉影视欧美成人| 国产精品午夜免费| 91精品国产高清一区二区三区 | 宅男在线国产精品| 波多野结衣一区二区三区 | 成人免费视频免费观看| 日本中文字幕一区二区视频| 中文字幕一区三区| 久久久影视传媒| 欧美日韩大陆在线| 91欧美激情一区二区三区成人| 麻豆极品一区二区三区| 亚洲图片自拍偷拍| 综合久久给合久久狠狠狠97色| 日韩美女在线视频| 精品污污网站免费看| 国产91露脸合集magnet| 免费在线成人网| 亚洲乱码中文字幕综合| 国产日韩欧美麻豆| 精品少妇一区二区三区| 欧美性一二三区| 成人激情综合网站| 国产乱码精品一区二区三区五月婷| 视频在线观看一区| 一区二区三区在线视频免费观看| 国产日韩精品一区二区浪潮av| 91精品国产免费| 欧美三级视频在线观看| 色婷婷一区二区三区四区| gogo大胆日本视频一区| 国产精品香蕉一区二区三区| 另类的小说在线视频另类成人小视频在线| 一区在线播放视频| 日本一区二区三区四区在线视频| 欧美成人在线直播| 91精品国产福利在线观看| 欧美日本韩国一区二区三区视频 | 欧美极品少妇xxxxⅹ高跟鞋| 欧美大片国产精品| 欧美一级搡bbbb搡bbbb| 欧美亚洲日本国产| 欧美色欧美亚洲另类二区| 99久久久久久99| 91色porny在线视频| 成+人+亚洲+综合天堂| 成人黄色777网| 成人99免费视频| 色又黄又爽网站www久久| 色网站国产精品| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 在线观看视频一区| 在线观看成人小视频| 色视频一区二区| 欧美在线999| 4438亚洲最大| 精品电影一区二区三区| 精品乱人伦小说| 久久免费国产精品| 国产精品私人自拍| 亚洲人成精品久久久久久| 亚洲毛片av在线| 日韩福利视频导航| 国产美女视频91| 91免费精品国自产拍在线不卡| 精品视频免费在线| 精品国产sm最大网站| 国产精品久久久久影视| 亚洲一区二区欧美| 国产麻豆一精品一av一免费| 99在线精品一区二区三区| 欧美日韩三级一区| 久久女同精品一区二区| 亚洲欧美日韩国产中文在线| 亚洲成av人片一区二区三区 | 国产成人精品免费| 91国内精品野花午夜精品| 日韩小视频在线观看专区| 久久这里只有精品6| 亚洲欧美日韩久久精品| 九色综合狠狠综合久久| youjizz国产精品| 3atv一区二区三区| 国产午夜精品美女毛片视频| 欧美精品在欧美一区二区少妇| 精品国产免费久久| 国产精品久久免费看| 亚洲综合小说图片| 蜜臀久久久99精品久久久久久| 久久疯狂做爰流白浆xx| 波多野结衣一区二区三区| 欧美三级蜜桃2在线观看| 日韩一区二区在线观看视频| 久久精品亚洲国产奇米99| 亚洲色图清纯唯美| 日本aⅴ精品一区二区三区 | 免费人成在线不卡| 国产成人免费高清| 欧美日韩在线电影| 337p粉嫩大胆色噜噜噜噜亚洲| 久久久不卡网国产精品二区 | 国产精品国模大尺度视频| 中日韩av电影| 热久久国产精品| 国产福利一区二区三区视频| 99精品视频在线播放观看| 日韩午夜在线观看视频| 久久精品综合网| 亚洲成人激情综合网| 国产一区二区在线观看视频| 99精品桃花视频在线观看| 久久久久久99精品| 亚洲成人av电影| 懂色一区二区三区免费观看| 欧美日韩一卡二卡三卡| 中文字幕精品在线不卡| 奇米一区二区三区| 成人毛片在线观看| 久久综合狠狠综合久久综合88| 一区二区三区在线观看视频| 国产一区二区三区在线观看免费 | 欧美日韩国产美女| 国产精品欧美一区喷水| 日本中文字幕一区| 欧洲国内综合视频| 日韩免费电影一区| 日韩精品乱码av一区二区| 91免费精品国自产拍在线不卡| 亚洲精品在线免费观看视频| 亚洲国产日韩精品| 波多野结衣亚洲一区| 久久九九99视频| 国产九九视频一区二区三区| 在线不卡免费av| 亚洲在线一区二区三区| 99久久精品免费观看| 久久嫩草精品久久久精品一| 免费成人av资源网| 色一区在线观看|