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

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

?? avltree.cpp

?? 平衡二叉樹生成 輸入任意個(gè)節(jié)點(diǎn) 如 2 6 8 0為顯示 可自動(dòng)生成平衡二叉樹 bf為平衡因子 h給深度 可插入刪除 計(jì)算轉(zhuǎn)動(dòng)次數(shù)(wangliwei007也是我
?? CPP
字號:
/*
*file: AVLTree.cpp
*date: 2004.12.9
*author: 
*description: 
*	A self-balanced tree with balance-factorial.
*	This file is the function bodies of the template.
*	See "AVLTree.h" to get the information of the declarations.
*/

#ifndef __AVLTree_cpp__
#define __AVLTree_cpp__

#include <iostream>
#include <exception>
#include <string>
#include <typeinfo>
#include "AVLTree.h"

using std::string;
using std::cerr;
using std::cout;

template<class KeyType>
AVLTree<KeyType>::AVLTree(KeyType key):
	_key(key),_bf(0),h(1),_lChild(0),_rChild(0)
{
	;
}//~AVLTree(KeyType key);

template<class KeyType>
AVLTree<KeyType>::~AVLTree()
{
	#ifdef debug
		cerr<<"~AVLTree() _key:"<<_key<<endl;
	#endif
	if(_lChild) delete _lChild;
	if(_rChild) delete _rChild;
}//~~AVLTree()

template<class KeyType>
inline KeyType AVLTree<KeyType>::key() const
{
	return _key;
}//~key()

template<class KeyType>
inline void  AVLTree<KeyType>::key(KeyType k)
{
	_key=k;
}//~key(KeyType)

template<class KeyType>
void  AVLTree<KeyType>::out()
{
	reH();
	if(hasLChild()) _lChild->out();
	cout<<"Key:"<<_key<<" BF:"<<_bf<<" H:"<<h<<endl;
	if(hasRChild()) _rChild->out();
}//~key(KeyType)

template<class KeyType>
int  AVLTree<KeyType>::reH()
{
	if(hasNoChildren()) h=1;
	else h=1+(((hasLChild()?_lChild->reH():0)>(hasRChild()?_rChild->reH():0))?_lChild->h:_rChild->h);
	_bf=(hasLChild()?_lChild->h:0)-(hasRChild()?_rChild->h:0);
	return h;
}

template<class KeyType>
int AVLTree<KeyType>::insert(KeyType k,AVLTree<KeyType>*& gr)
{
	if(k<_key)
	{
		hasLChild()?(_lChild->insert(k,_lChild)):(_lChild=new AVLTree<KeyType>(k),_bf++);
	}
	else
	{
		hasRChild()?(_rChild->insert(k,_rChild)):(_rChild=new AVLTree<KeyType>(k),_bf--);
	}
	reH();
	if(_bf==2)
	{
		if(_lChild->_bf<0) _lChild->renodeLeft(_lChild,_lChild->_rChild);
		reH();
		renodeRight(gr,_lChild);
	}
	if(_bf==-2)
	{
		if(_rChild->_bf>0) _rChild->renodeRight(_rChild,_rChild->_lChild);
		reH();
		renodeLeft(gr,_rChild);
	}
	reH();
	return _bf;
}//~insert(KeyType)

template<class KeyType>
bool AVLTree<KeyType>::del(KeyType key,AVLTree*& gr)
{
	if(key==_key)
	{
		delbyCopy(gr);
		return true;
	}
	else if(key>_key)
	{
		_rChild->del(key,_rChild);
	}
	else if(key<_key)
	{
		_lChild->del(key,_lChild);
	}
	reH();
	if(_bf==2)
	{
		if(_lChild->_bf<0) _lChild->renodeLeft(_lChild,_lChild->_rChild);
		reH();
		renodeRight(gr,_lChild);
	}
	if(_bf==-2)
	{
		if(_rChild->_bf>0) _rChild->renodeRight(_rChild,_rChild->_lChild);
		reH();
		renodeLeft(gr,_rChild);
	}
	reH();
	return false;
}//~del(KeyType)


template<class KeyType>
void AVLTree<KeyType>::delbyCopy(AVLTree<KeyType>*& target)
{
	AVLTree<KeyType>* tmp;
	if(target->hasNoChildren())
	{
		delete target;
		target=NULL;
		return;
	}
	else if((!target->hasLChild())&&target->hasRChild())
	{
		tmp=target->_rChild;
		target->_rChild=NULL;
		delete target;
		target=tmp;
		return;
	}
	else if((!target->hasRChild())&&target->hasLChild())
	{
		tmp=target->_lChild;
		target->_lChild=NULL;
		delete target;
		target=tmp;
		return;;
	}
	else 
	{
		tmp=target->_lChild;
		AVLTree<KeyType>* tmp2;
		if(tmp!=NULL) while(tmp->_rChild->hasRChild()) tmp=tmp->_rChild;
		tmp2=tmp->_rChild;
		tmp->_rChild=tmp2->_lChild;
		tmp2->_lChild=0;
		target->key(tmp2->key());
		delete tmp2;
	}
}//~delbyCopy(AVLTree*);

template<class KeyType>
inline bool AVLTree<KeyType>::hasNoChildren()
{
	return _lChild?false:!_rChild;
}//~hasNoChildren()

template<class KeyType>
inline bool AVLTree<KeyType>::hasLChild()
{
	return _lChild?true:false;
}//~hasLChild()

template<class KeyType>
inline bool AVLTree<KeyType>::hasRChild()
{
	return _rChild?true:false;
}//~hasRChild()

template<class KeyType>
void AVLTree<KeyType>::renodeRight(AVLTree<KeyType>*& Gr,AVLTree<KeyType>* Ch/*,AVLTree<KeyType>* Pr*/)
{
	_lChild=Ch->_rChild;
	Ch->_rChild=this;
	Gr=Ch;
	ct.r++;
}//~renodeR

template<class KeyType>
void AVLTree<KeyType>::renodeLeft(AVLTree<KeyType>*& Gr,AVLTree<KeyType>* Pr/*,AVLTree<KeyType>* Ch*/)
{
	_rChild=Pr->_lChild;
	Pr->_lChild=this;
	Gr=Pr;
	ct.l++;
}//~renodeL

template<class KeyType>
inline void AVLTree<KeyType>::clearCounter()
{
	ct.r=ct.l=0;
}

template<class KeyType>
inline Counter AVLTree<KeyType>::getCounter()
{
	return ct;
}

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩毛片视频在线看| 粗大黑人巨茎大战欧美成人| 91黄视频在线| 一区二区三区免费网站| 欧美色倩网站大全免费| 午夜精品aaa| 欧美tickling挠脚心丨vk| 国产在线精品一区二区夜色| 久久夜色精品一区| 波多野结衣一区二区三区| 亚洲欧美日韩国产成人精品影院 | 在线一区二区三区四区| 一区二区在线看| 欧美日韩国产综合一区二区 | 99精品久久99久久久久| 亚洲精选视频在线| 91精品蜜臀在线一区尤物| 久久精品久久综合| 国产精品久久久久久妇女6080 | 欧美视频一区二区在线观看| 视频一区二区欧美| 久久久777精品电影网影网| 99国产精品一区| 五月天一区二区三区| 2023国产精华国产精品| 91香蕉视频污| 青草av.久久免费一区| 国产欧美一区二区精品性色| 欧美伊人精品成人久久综合97 | 精品乱人伦一区二区三区| 粉嫩av一区二区三区在线播放| 亚洲人精品午夜| 日韩欧美一级在线播放| 99re这里只有精品首页| 麻豆免费精品视频| 亚洲欧洲性图库| 欧美大肚乱孕交hd孕妇| 91麻豆高清视频| 国产一区二区伦理| 亚洲国产日韩一级| 欧美国产一区二区在线观看| 欧美丰满嫩嫩电影| www.在线成人| 精品系列免费在线观看| 亚洲一区二区在线免费观看视频| 久久精品人人爽人人爽| 欧美日韩在线观看一区二区| 国产成人av一区| 美腿丝袜亚洲综合| 亚洲一区视频在线观看视频| 国产色婷婷亚洲99精品小说| 欧美精品精品一区| 一本色道综合亚洲| 国产成人欧美日韩在线电影| 日韩成人伦理电影在线观看| 亚洲免费av在线| 久久精品在这里| 日韩视频免费直播| 欧美精品久久一区| 在线观看视频欧美| jizz一区二区| 国产传媒一区在线| 91麻豆.com| 成人性生交大片免费看在线播放| 另类综合日韩欧美亚洲| 丝袜亚洲另类欧美| 亚洲福利视频三区| 亚洲一区二区三区中文字幕在线 | 欧美精品一二三| 欧美综合一区二区| 在线日韩一区二区| 色一情一伦一子一伦一区| aaa欧美色吧激情视频| 成人性生交大片免费看在线播放| 国产高清不卡一区二区| 国产一区91精品张津瑜| 国产一区二区主播在线| 国内久久精品视频| 精品国产1区2区3区| 成人免费毛片片v| 国产自产v一区二区三区c| 日韩va欧美va亚洲va久久| 性做久久久久久免费观看欧美| 亚洲自拍偷拍欧美| 亚洲成在人线在线播放| 亚洲国产乱码最新视频| 婷婷亚洲久悠悠色悠在线播放| 视频在线观看91| 青青草97国产精品免费观看无弹窗版 | 国产91在线看| 不卡一区在线观看| 99v久久综合狠狠综合久久| 91美女在线观看| 欧美日韩在线直播| 欧美一区二区三区四区五区| 精品久久久久一区| 国产午夜三级一区二区三| 国产精品素人视频| 亚洲精品v日韩精品| 青娱乐精品在线视频| 亚洲一区免费视频| 偷拍一区二区三区四区| 国产成人午夜片在线观看高清观看| 久久国产精品99精品国产 | 久久99精品久久只有精品| 加勒比av一区二区| 成人a区在线观看| 欧美日韩精品福利| 久久网站最新地址| 亚洲三级电影全部在线观看高清| 亚洲一二三区在线观看| 久久激情五月激情| 成人高清伦理免费影院在线观看| 欧美写真视频网站| 精品国产乱码久久久久久影片| 国产精品日韩成人| 偷偷要91色婷婷| 成人性生交大片免费看中文| 精品视频免费在线| 国产喷白浆一区二区三区| 亚洲精品高清在线| 精品一区二区三区香蕉蜜桃| 99久久精品免费精品国产| 欧美日本视频在线| 国产欧美日韩精品a在线观看| 亚洲精品视频免费看| 韩国av一区二区三区四区| 欧美午夜电影在线播放| 久久久精品国产99久久精品芒果 | 午夜影视日本亚洲欧洲精品| 国产精品综合一区二区三区| 色偷偷成人一区二区三区91| 欧美一区二区三区在线视频| 亚洲视频一区二区在线观看| 久久精品国产免费看久久精品| 91片黄在线观看| 久久精品人人做| 免费在线一区观看| 欧美性色综合网| 一区在线观看免费| 国产精品一区在线观看乱码| 欧美日韩午夜影院| 亚洲欧美色一区| 高清在线观看日韩| 日韩欧美电影一区| 三级成人在线视频| 在线观看国产91| 中文字幕在线观看一区| 国内精品久久久久影院薰衣草| 欧美精品三级日韩久久| 一区二区三区波多野结衣在线观看 | 日韩欧美中文字幕一区| 一区二区三区不卡视频在线观看| 成人一区在线看| 久久精品视频免费| 国产一区二区影院| 精品国精品国产| 麻豆免费精品视频| 日韩欧美激情一区| 日韩精品高清不卡| 欧美丰满高潮xxxx喷水动漫| 亚洲一本大道在线| 欧美视频三区在线播放| 亚洲精品高清视频在线观看| 97精品久久久久中文字幕| 国产精品福利一区| eeuss鲁片一区二区三区在线观看| 久久精品日产第一区二区三区高清版| 国内精品免费**视频| 久久这里只有精品首页| 国产在线精品免费av| 国产亚洲精品aa午夜观看| 国产麻豆91精品| 亚洲国产精品ⅴa在线观看| 风间由美一区二区三区在线观看 | 日本免费在线视频不卡一不卡二| 欧美乱妇23p| 蜜桃av一区二区| 精品国产一区久久| 国产福利一区二区三区视频| 久久久亚洲午夜电影| 成人国产免费视频| 亚洲三级免费电影| 欧美精品日韩综合在线| 麻豆91在线播放| 国产欧美一区二区三区在线老狼| av一区二区久久| 亚洲亚洲人成综合网络| 91精品福利在线一区二区三区 | 国产三级一区二区三区| 成人做爰69片免费看网站| 中文字幕中文字幕一区| 91成人免费网站| 蜜桃久久精品一区二区| 亚洲国产精华液网站w| 91麻豆免费在线观看| 日韩高清在线不卡| 国产三级欧美三级日产三级99 | 久久精品一区四区| 91性感美女视频|