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

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

?? avltree.java

?? 一款出色得橫板過關游戲源代碼
?? JAVA
字號:
package tool;

public class AVLTree {
	boolean isSingle=false,left2right=false;
	int lHeight,rHeight;
	public AVLNode root=null;
	protected int nodecount=0;
	protected int getFactor(AVLNode subroot){
		if (subroot==null){
			return 0;
		}
		if (subroot.left==null){
			lHeight=0;
		}
		else{
			lHeight= subroot.left.height;
		}
		if (subroot.right==null){
			rHeight=0;
		}
		else{
			rHeight=subroot.right.height;
		}
		return lHeight-rHeight;
	}

	protected int getTreeHeight(AVLNode subroot){
		if(subroot==null){
			return 0;
		}
		if (subroot.left==null){
			lHeight=0;
		}
		else{
			lHeight=subroot.left.height;
		}
		if (subroot.right==null){
			rHeight=0;
		}
		else{
			rHeight=subroot.right.height;
		}
		return 1+(lHeight>rHeight?lHeight:rHeight);
		
	}
	protected void adjustHeight(AVLNode subroot){
		if (subroot==null){
			return;
		}
		subroot.height=getTreeHeight(subroot);
	}
	
	protected AVLNode doDouble(AVLNode oldRoot,boolean left2right){
		AVLNode small,mid,big,t1,t2,t3,t4;
		if (left2right){
			big=oldRoot;
			small=oldRoot.left;
			mid=small.right;
			t1=small.left;
			t2=mid.left;
			t3=mid.right;
			t4=big.right;
		}
		else{
			small=oldRoot;
			big=small.right;
			mid=big.left;
			t1=small.left;
			t2=mid.left;
			t3=mid.right;
			t4=big.right;
		}
		mid.left=small;
		mid.right=big;
		small.left=t1;
		small.right=t2;
		big.left=t3;
		big.right=t4;
		adjustHeight(small);
		adjustHeight(big);
		adjustHeight(mid);
		return mid;
	}
	protected AVLNode doubleRotate(AVLNode parent,boolean isRoot,boolean left2right){
			AVLNode oldRoot;
			boolean isLeft;
			if (isRoot){
				oldRoot=parent;
				root=doDouble(oldRoot, left2right);
				return root;
			}
			else{
				isLeft=parent.inLeft;
				oldRoot=parent.getSon(isLeft);
				parent.setSon(doDouble(oldRoot, left2right), isLeft);
				adjustHeight(parent);
				return parent;
			}
	}
	protected AVLNode singleRotate(AVLNode parent,boolean isRoot, boolean left2right){
			AVLNode oldRoot=parent,son,t1;
			boolean isLeft=parent.inLeft;
			if (isRoot){	
				son=parent.getSon(left2right);
				t1=son.getSon(!left2right);
				son.setSon(parent, !left2right);
				parent.setSon(t1, left2right);
				adjustHeight(parent);
				adjustHeight(son);
				root=son;
				return son;
			}
			else{
				
				oldRoot=parent.getSon(isLeft);
				son=oldRoot.getSon(left2right);
				t1=son.getSon(!left2right);
				parent.setSon(son, isLeft);
				oldRoot.setSon(t1, left2right);
				son.setSon(oldRoot, !left2right);
				adjustHeight(oldRoot);
				adjustHeight(son);
				adjustHeight(parent);
				return parent;
			}
		}
	protected void checkDir(AVLNode subroot){
				AVLNode son;
				int parentFactor, sonFactor;
				boolean isLeft;
				isLeft=subroot.inLeft;
				son=subroot.getSon(isLeft);
				parentFactor=getFactor(subroot);
				sonFactor=getFactor(son);
				if (sonFactor==0){
					son=subroot.getSon(!isLeft);
					sonFactor=getFactor(son);
					if (sonFactor==0){
						isSingle=true;
						left2right=parentFactor>0;
						return;
					}
				}
				isSingle=parentFactor*sonFactor>0;
				left2right=parentFactor>0;
	}
	protected void adjust(AVLNode subroot,boolean isRoot){
		AVLNode temp;
		boolean isLeft=false;
		if (isRoot){
			temp=subroot;
		}
		else{
			isLeft=subroot.inLeft;		
			temp=subroot.getSon(isLeft);
		}
		checkDir(temp);
		if (isSingle){
			subroot=singleRotate(subroot, isRoot, left2right);
		}
		else{
			subroot=doubleRotate(subroot, isRoot, left2right);
		}
	}
	protected void updateHeight(AVLNode subroot){
		if (subroot==null){
			return;
		}
		int factor, sonFactor;
		AVLNode son;
		adjustHeight(subroot);
		factor=getFactor(subroot);
		son=subroot.getSon(subroot.inLeft);
		sonFactor=getFactor(son);
		if ((factor==2||factor==-2)&&subroot==root){
			if (sonFactor==1||sonFactor==-1||sonFactor==0){
				adjust(subroot, true);
			}
			else{
				adjust(subroot, false);
			}				
		}
		else{
			if (sonFactor==2||sonFactor==-2)
			{
				adjust(subroot, false);
			}
		}
	}
	protected void inserthelp(AVLNode subroot,final AVLbuff val){
			if (subroot.it == null){
				subroot.Node(val,null,null,1);
				return;
			}
			if(EEComp.eq(val.getAVLnum(), subroot.it.getAVLnum())){
				System.out.println("Same AVLnum"+" "+val.getAVLnum()+" "+subroot.it.getAVLnum());
				return;
			}
			if (EEComp.lt(val.getAVLnum(), subroot.it.getAVLnum())){
				subroot.inLeft=true;
				if(subroot.left==null){
					subroot.left=new AVLNode();
				}
				inserthelp(subroot.left, val);
				updateHeight(subroot);
			}
			else{
				subroot.inLeft=false;
				if(subroot.right==null){
					subroot.right=new AVLNode();
				}
				inserthelp(subroot.right, val);
				updateHeight(subroot);
			}
	}
	public void insert(final AVLbuff val){
		if(root==null){
			root=new AVLNode();
		}
		inserthelp(root,val);
	}
	public AVLbuff find(long num){
		AVLNode ptr=root;
		while(true){
			if(ptr==null){
				return null;
			}
			if(num==ptr.it.getAVLnum()){
				return ptr.it;
			}
			if(num<ptr.it.getAVLnum()){
				ptr=ptr.left;
			}
			else{
				ptr=ptr.right;
			}
			
		}
	}
	public void clear(){
		root=null;
	}
	
}

class AVLNode{
	public AVLbuff it=null;
	public int height=0;
	public AVLNode left=null;
	public AVLNode right=null;
	public boolean inLeft;
	public AVLNode(){
		left=null;
		right=null;
		height=1;
		inLeft=true;
	}
	public void Node(AVLbuff e,AVLNode l,AVLNode r,int newHeight){
		it = e;
		left = l;
		right = r;
		height=newHeight;
		inLeft=true;
	}
	public boolean isLeaf(){ 
		return ((left==null)&&(right==null));
	}
	
	public AVLNode getSon(boolean isLeft){
		return isLeft?left:right;
	}
	
	public void setSon(AVLNode son, boolean isLeft){
		if(isLeft){
			left=son;
		}
		else{
			right=son;
		}
		
	}

}

class EEComp{
	static boolean lt(long e1, long e2)
		{ return e1<e2;}
	static boolean eq(long e1, long e2)
		{ return e1==e2;}
	static boolean gt(long e1, long e2)
		{ return e1>e2;}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夜夜操天天操亚洲| 美国一区二区三区在线播放| 色妹子一区二区| 亚洲一区二区欧美| 这里只有精品99re| 久久av老司机精品网站导航| 国产性色一区二区| 色一情一伦一子一伦一区| 午夜在线成人av| 亚洲精品在线观看网站| 成人黄色在线网站| 亚洲在线一区二区三区| 日韩欧美一级精品久久| 国产福利不卡视频| 亚洲激情图片qvod| 91麻豆精品91久久久久久清纯| 国产一区亚洲一区| 中文字幕字幕中文在线中不卡视频| 欧美午夜一区二区| 久久av中文字幕片| 亚洲欧美另类小说| 欧美精品久久天天躁| 国产一区二区精品久久91| 中文字幕中文乱码欧美一区二区| 欧美三级午夜理伦三级中视频| 男女性色大片免费观看一区二区 | 久久只精品国产| jlzzjlzz亚洲日本少妇| 亚洲va国产va欧美va观看| 欧美草草影院在线视频| av一区二区三区在线| 视频在线观看91| 国产亲近乱来精品视频| 在线观看视频一区| 国产真实乱对白精彩久久| 亚洲欧美偷拍卡通变态| 成人爽a毛片一区二区免费| 中文字幕一区二区三区视频| 91精品国产欧美日韩| 风间由美一区二区三区在线观看| 亚洲香蕉伊在人在线观| 久久精品网站免费观看| 欧美午夜精品理论片a级按摩| 久国产精品韩国三级视频| 《视频一区视频二区| 日韩欧美美女一区二区三区| 91在线精品一区二区三区| 另类综合日韩欧美亚洲| 一区二区三区自拍| 国产亚洲精品超碰| 制服视频三区第一页精品| 99国产精品久久久久久久久久| 久久精品国产99国产| 一区二区三区不卡视频在线观看| 国产午夜精品一区二区| 制服丝袜亚洲色图| 一本到高清视频免费精品| 国产精品一区二区三区99| 亚洲成人tv网| 亚洲人成7777| 国产欧美一区二区精品仙草咪| 91精品国产手机| 色婷婷香蕉在线一区二区| 国产精品亚洲午夜一区二区三区 | 成人爱爱电影网址| 免费成人小视频| 亚洲午夜在线观看视频在线| 中文字幕中文字幕一区二区| 久久一区二区三区国产精品| 欧美日韩的一区二区| 色婷婷av一区二区三区gif| 国产高清亚洲一区| 精品一区二区国语对白| 偷拍日韩校园综合在线| 一区二区免费在线| 中文字幕中文字幕在线一区 | 在线观看91av| 亚洲日本一区二区| 欧美国产日韩在线观看| 精品国产乱码久久久久久久| 欧美日韩高清一区二区不卡| 91久久久免费一区二区| 99视频一区二区| 成人一道本在线| 国产一区二区三区电影在线观看| 免费成人av资源网| 午夜激情综合网| 亚洲一二三区不卡| 亚洲在线免费播放| 亚洲宅男天堂在线观看无病毒| 亚洲乱码国产乱码精品精可以看| 亚洲欧洲在线观看av| 国产精品久久毛片av大全日韩| 国产欧美精品一区| 国产欧美精品一区二区色综合朱莉| 精品美女在线观看| 精品国产第一区二区三区观看体验| 555www色欧美视频| 欧美肥妇bbw| 91麻豆精品国产自产在线观看一区 | 日本aⅴ免费视频一区二区三区| 亚洲综合一区二区精品导航| 综合久久久久久| 亚洲欧美中日韩| 18欧美亚洲精品| 中文字幕中文字幕一区二区| 国产精品电影一区二区三区| 中文字幕亚洲欧美在线不卡| 亚洲三级电影网站| 一区二区三区免费在线观看| 亚洲国产精品自拍| 亚洲成人av中文| 日韩电影一区二区三区四区| 日韩高清在线不卡| 久草这里只有精品视频| 国产一区二区三区美女| 粉嫩av亚洲一区二区图片| 成人精品电影在线观看| 91麻豆免费看| 欧美亚洲一区二区三区四区| 欧美福利视频一区| 日本精品免费观看高清观看| 色哟哟国产精品| 色先锋资源久久综合| 欧美日韩国产乱码电影| 欧美一区二区日韩| 久久女同精品一区二区| 国产精品美女久久久久高潮| 亚洲精品乱码久久久久久黑人| 亚洲综合男人的天堂| 天天影视色香欲综合网老头| 美女在线视频一区| 韩国毛片一区二区三区| 波多野结衣欧美| 在线观看91视频| 欧美成人精精品一区二区频| 国产欧美日韩不卡| 亚洲久本草在线中文字幕| 五月婷婷综合在线| 国产一区二区视频在线| 99久久精品免费看国产| 欧美人体做爰大胆视频| 久久久综合激的五月天| 亚洲色图.com| 日韩不卡一区二区三区| 丁香亚洲综合激情啪啪综合| 色猫猫国产区一区二在线视频| 91精品国产91久久久久久一区二区| 欧美精品一区二区在线播放| 亚洲欧洲日本在线| 日韩电影在线免费看| 国产91高潮流白浆在线麻豆| 欧美在线播放高清精品| 欧美电视剧免费全集观看| 国产精品成人在线观看| 日韩精品一二区| 成人中文字幕电影| 欧美色中文字幕| 亚洲精品一区二区三区香蕉| 亚洲激情图片小说视频| 久草在线在线精品观看| 一本色道久久综合亚洲91| 91精品国产免费| 日韩理论片在线| 精品一区二区三区蜜桃| 色综合欧美在线视频区| 精品成人免费观看| 亚洲一区av在线| 国产一区二区三区在线观看免费视频| 色素色在线综合| 精品国产乱码久久久久久1区2区 | 欧美日韩在线一区二区| 精品成人在线观看| 一区二区三区国产精品| 国产高清在线精品| 欧美日韩国产高清一区二区| 中文字幕不卡在线播放| 奇米色777欧美一区二区| 91网址在线看| 国产亚洲视频系列| 日韩和欧美一区二区三区| heyzo一本久久综合| 精品国产电影一区二区| 亚洲国产视频一区二区| 成人黄色网址在线观看| 欧美成人精品高清在线播放| 亚洲国产日韩av| 成人免费观看av| 欧美大片一区二区三区| 香蕉久久夜色精品国产使用方法| 99久久精品免费看| 国产午夜精品理论片a级大结局| 日精品一区二区| 91老师片黄在线观看| 久久久久99精品一区| 日本欧美久久久久免费播放网| 日本乱人伦一区| 1区2区3区精品视频| 国产成人亚洲综合色影视| 欧美电视剧在线观看完整版|