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

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

?? shujujiegou.cpp

?? 這是一個c++程序
?? CPP
字號:
#include "iostream"
using namespace std;

template <class Type> class BinaryTree;								//二叉樹類BinaryTree的向前說明
template <class Type> class BinaryNode                                //二叉樹結點類
{
	friend class BinaryTree < Type >;
private:
	BinaryNode <Type> *left, *right ;                              //結點的左右兒子的地址
    Type data;                                                          //結點的數據信息
	int S;                                                       
public:
	BinaryNode ( ) : left (NULL), right (NULL) { }					//二叉樹結點的構造函數
	BinaryNode (Type item, BinaryNode <Type> *L = NULL, BinaryNode <Type> *R = NULL)
	: data (item) , left (L), right (R) { }
	Type GetData () const {return data;}                              //得到二叉樹的結點數據值
    BinaryNode <Type> * GetLeft () const {return left;}              //得到二叉樹結點的左兒子地址
	BinaryNode <Type> * GetRight () const {return right;}           //得到二叉樹結點的右兒子地址
	void SetData (const Type & item) {data = item;}                  //設置二叉樹結點的數據值	
	void SetLeft (BinaryNode <Type> *L) {left =L;}              //設置二叉樹結點的左兒子地址
	void SetRight (BinaryNode <Type> *R) {right = R;}             //設置二叉樹結點的左兒子地址
	int FloorNum (const BinaryNode <Type> *T ) const ;                 //必須是完全二叉樹的結點
    int Size (const BinaryNode <Type> *T ) const;                      //得到二叉樹的結點數
	int Height (const BinaryNode <Type> *T) const;					//得到二叉樹的高度
	void PrintPreOrder() const ;									//按前序打印二叉樹的結點的數據值
	void PrintPostOrder() const ;									//按后序打印二叉樹的結點的數據值
	void PrintInOrder() const ;										//按中序打印二叉樹的結點的數據值
	BinaryNode < Type > * Duplicate () const ;						//復制二叉樹中的所有結點
};

template<class Type>
void BinaryNode <Type>:: PrintPreOrder() const 
{
	cout <<" Data is in PreOrder" << data << "." << endl;
	if (left != NULL) left -> PrintPreOrder();
	if (right != NULL) right -> PrintPreOrder() ;
}

template<class Type>
void BinaryNode <Type>::PrintInOrder() const 
{	
	if (left != NULL) left -> PrintInOrder();
	cout << "Data is in InOrder" << data << "." << endl;
	if (right != NULL) right -> PrintInOrder() ;
}

template <class Type>
void BinaryNode <Type> :: PrintPostOrder() const 
{
	if (left != NULL) left -> PrinPostOrder();
	if (right != NULL) right -> PrintPostOrder() ;
	cout << "Data is in PostOrder" << data << "." << endl;
}

template <class Type>
Type Max(const Type u, const Type v) 
{
	if (u > v) return u;
	else return v;
}

template <class Type>
int BinaryNode <Type> :: Height(const BinaryNode <Type> *T) const
{
	if (T == NULL) return 0;
	else return 1 + Max(Height(T -> left), Height(T -> right));
}

template <class Type>
int BinaryNode<Type> :: Size(const BinaryNode<Type> *T) const
{
	if (T == NULL) return 0;
	else return 1 + Size(T -> left) + Size(T -> right);
}

template<class Type>
int BinaryNode<Type> :: FloorNum(const BinaryNode <Type>* T) const 
{
	int floor = 0;
	int i = T -> S;
	while(i>0)
	{
		i = i / 2;
		floor++;
	}
    return ++floor;
}

template <class Type> class BinaryTree               
{
private:                                    
	BinaryNode <Type> *root;
	BinaryTree(const BinaryTree<Type> &T);
	void DelTree(BinaryNode <Type> * T);
	void PreOrderNumber(int &n, BinaryNode<Type> *p);
	void InOrderNumber(int &n, BinaryNode<Type> *p);
	void PostOrderNumber(int &n, BinaryNode<Type> *p);
	void ChildNumber(BinaryNode<Type> *p);
public:
	BinaryTree ( ) : root (NULL) {}						//構造空二叉樹
	BinaryTree (const Type & value) { root = new BinaryNode< Type > ( value );}
	~BinaryTree() {DelTree (root);}
	bool IsEmpty() const {return root == NULL;}         //二叉樹為空,返回非0,否則為0
	const BinaryNode <Type> * Getroot ( ) const {return root;}  
	void MakeEmpty() {Deltree( root ); root = NULL;}    //使二叉樹為空        
	const BinaryTree <Type> & operator = (const BinaryTree <Type> &T);
	void PrintInSequence();                                         
	void PrintChild( );                                             
	void PrintPreOrderNumber();                                    
	void PrintInOrderNumber();                                     
	void PrintPostOrderNumber();                                   

};

template < class Type >
void BinaryTree<Type> :: DelTree (BinaryNode <Type> *T)
{
	if (T != NULL)
	{
		DelTree(T -> left);
		DelTree (T -> right);
		delete [] T;
	}
}

template <class Type>
void BinaryTree<Type> :: PrintInSequence()       
{
	if (IsEmpty()) 
	{
		cout<<"The BinaryTree is Empty!"<<endl;
		return;
	}
	else
	{
		Queue<BinaryNode<Type> *>P;
		int Seq=0;
		Queue<int> SequenceNumber;
		P.EnQueue(root);
        Seq ++;
		SequenceNumber.EnQueue(1);
		while (!P.IsEmpty())
		{
			cout <<"Data is:"<<P.Front() -> data<<endl;
			cout <<"Level number is:"<<SequenceNumber.Front()<<endl;
			if (P.Front() -> left != NULL)
			{
				P.EnQueue(P.Front() -> left);
				SequenceNumber.EnQueue(1 + SequenceNumber.Front());
			}
			if (P.Front()-> right != NULL)
			{
				P.EnQueue(P.Front() -> right);
				SequenceNumber.EnQueue(1 + SequenceNumber.Front()) ;
			}
			P.Front() -> Sequence = Seq;
			P.DeQueue();
			SequenceNumber.DeQueue();
		}
	}
	
}

template<class Type>
void BinaryTree<Type> :: PrintPreOrderNumber()
{
    if (IsEmpty()) 
	{
		cout <<"Tree is Empty!"<<endl;
		return;
	}
	else
	{
		int n = 1;
		PreOrderNumber(n, root);
	}
}

template<class Type>
void BinaryTree<Type> :: PreOrderNumber(int &n, BinaryNode<Type> *p)
{
	cout <<"Data is :"<<p -> data<<endl;
	cout <<"The Number in PreOrder is:"<<n<<endl;
	n++;
	if (p -> left != NULL) PreOrderNumber(n, p ->left);
	if (p -> right != NULL) PreOrderNumber(n, p -> right);
}

template<class Type>
void BinaryTree<Type> :: PrintInOrderNumber()
{
    if (IsEmpty()) 
	{
		cout <<"Tree is Empty!"<<endl;
		return;
	}
	else
	{
		int n = 1;
		InOrderNumber(n, root);
	}
}

template<class Type>
void BinaryTree<Type> :: InOrderNumber(int &n , BinaryNode<Type> *p)
{
	if (p -> left != NULL) InOrderNumber(n, p ->left);
    cout <<"Data is :"<<p -> data<< endl;
	cout <<"The Number in InOrder is:"<<n<< endl;
	n++;
	if (p -> right != NULL) InOrderNumber(n, p -> right);
}

template<class Type>
void BinaryTree<Type> :: PrintPostOrderNumber()
{
    if (IsEmpty()) 
	{
		cout <<"Tree is Empty!"<<endl;
		return;
	}
	else
	{
		int num = 1;
		PostOrderNumber(num, root);
	}
}

template<class Type>
void BinaryTree<Type> :: PostOrderNumber(int &num, BinaryNode<Type> *p)
{
	if (p -> left != NULL) PostOrderNumber(num, p -> left);
  	if (p -> right != NULL) PostOrderNumber(num, p -> right);
    cout <<"Data is :"<<p -> data<<endl;
	cout <<"The Number in PostOrder is: "<<num<<endl;
	num++;
}

template <class Type>
void BinaryTree<Type> :: PrintChild( )
{
	if (IsEmpty()) 
	{
		cout <<"Tree is empty!"<<endl;
		return;
	}
	else
	{
        ChildNumber(root);
	}
}

template <class Type>
void BinaryTree<Type> :: ChildNumber(BinaryNode<Type> *P)
{
	cout <<"Data is:" <<P -> data<<endl;
	cout <<"ChildNumber is:";
	cout <<P -> Size(P) - 1<<endl;
	if (P -> left != NULL) ChildNumber(P -> left);
	if (P -> right != NULL) ChildNumber(P -> right);
}

int main ()
{
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久蜜桃av一区精品变态类天堂| 91精品福利视频| 精品sm在线观看| 激情丁香综合五月| 国产亚洲欧美一区在线观看| 高清不卡一区二区| 中文字幕在线观看不卡| 91视频在线观看| 国产成人在线网站| 中文字幕制服丝袜一区二区三区| 91亚洲精品久久久蜜桃网站| 亚洲国产一区二区三区| 91精品婷婷国产综合久久 | 91美女蜜桃在线| 一区二区三区四区五区视频在线观看 | 99久久精品免费看国产| 亚洲蜜臀av乱码久久精品| 欧美图区在线视频| 国产一区二区在线看| 亚洲欧美一区二区三区久本道91| 7777精品伊人久久久大香线蕉超级流畅 | 欧美男生操女生| 国产精品一线二线三线精华| 一区二区三区四区蜜桃| 日韩午夜激情免费电影| 成人av资源站| 日本中文字幕一区二区有限公司| 久久免费看少妇高潮| 色妹子一区二区| 国产专区欧美精品| 亚洲成人一区在线| 国产精品久久久久久久蜜臀| 欧美亚洲精品一区| 国产福利电影一区二区三区| 韩国女主播成人在线观看| 亚洲免费av高清| 国产日韩av一区| 正在播放一区二区| 色系网站成人免费| 国产美女精品在线| 婷婷一区二区三区| 伊人色综合久久天天人手人婷| 精品久久久久一区| 欧美日韩一区二区三区视频| 成人高清免费观看| 韩国一区二区三区| 日本成人在线看| 亚洲欧美乱综合| 国产免费观看久久| 日韩欧美国产麻豆| 欧美日韩精品免费观看视频| 色综合色狠狠综合色| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲一区二区三区四区在线免费观看 | 欧美伦理电影网| 色94色欧美sute亚洲线路一久| 国产激情一区二区三区桃花岛亚洲| 日韩电影在线免费| 午夜久久久久久久久| 一区二区三区高清在线| 成人免费视频在线观看| 国产日韩欧美高清在线| 久久久久久一二三区| 久久亚洲精品国产精品紫薇| 欧美一区二区福利在线| 69堂精品视频| 欧美日韩一区高清| 欧美日韩激情一区二区三区| 在线观看成人小视频| 一本久久a久久精品亚洲| 不卡高清视频专区| 成人免费精品视频| 波多野结衣中文字幕一区二区三区| 国产麻豆精品视频| 国产精品影视网| 成人免费毛片嘿嘿连载视频| 成人精品免费网站| 成人av动漫网站| 久久亚洲一级片| 久久视频一区二区| 国产日韩欧美精品一区| 国产精品福利一区二区三区| 亚洲另类一区二区| 亚洲电影一级片| 久久激五月天综合精品| 国产综合成人久久大片91| 丁香婷婷深情五月亚洲| 不卡一区中文字幕| 色久综合一二码| 欧美电影影音先锋| 日韩精品一区二区三区在线播放 | 日韩免费看网站| 久久色在线观看| 亚洲欧洲av在线| 亚洲最新在线观看| 麻豆国产一区二区| 成人av在线观| 欧美日韩亚洲不卡| 欧美tk—视频vk| 国产精品女人毛片| 亚洲成精国产精品女| 狠狠色伊人亚洲综合成人| 成人丝袜18视频在线观看| 91免费观看视频| 91精品啪在线观看国产60岁| 久久这里只有精品视频网| 亚洲欧美一区二区在线观看| 亚洲电影欧美电影有声小说| 激情文学综合插| a在线欧美一区| 欧美另类videos死尸| 国产日韩三级在线| 午夜精品123| 国产成人免费xxxxxxxx| 免费高清成人在线| 国产乱国产乱300精品| 99久久免费国产| 日韩写真欧美这视频| 国产精品美女视频| 日本不卡高清视频| av在线免费不卡| 精品国产凹凸成av人导航| 亚洲精品日韩综合观看成人91| 日本成人在线一区| 在线视频欧美精品| 久久久欧美精品sm网站| 午夜日韩在线观看| 成人自拍视频在线观看| 日韩一区二区不卡| 一区二区三区欧美激情| 粉嫩av一区二区三区| 日韩一级黄色大片| 一区二区在线观看av| 国产激情一区二区三区四区 | 黄色精品一二区| 欧美日韩一卡二卡三卡 | 国产成人在线观看免费网站| 欧美日本免费一区二区三区| 国产精品久久久久久久久免费相片| 视频一区免费在线观看| 99久久精品一区| 国产精品污www在线观看| 奇米影视一区二区三区小说| 在线观看日韩av先锋影音电影院| 欧美经典三级视频一区二区三区| 蜜桃视频一区二区三区在线观看| 在线观看日韩电影| 亚洲精品日韩一| 高清不卡一二三区| 国产日韩欧美高清在线| 韩国在线一区二区| 欧美xxxxxxxxx| 美女免费视频一区二区| 欧美丰满少妇xxxbbb| 一区二区日韩av| 日本高清视频一区二区| 最新中文字幕一区二区三区| 国产91对白在线观看九色| 精品99久久久久久| 黄色资源网久久资源365| 欧美电影免费观看高清完整版在 | 奇米精品一区二区三区四区 | 亚洲精品日日夜夜| 色综合久久天天| 亚洲欧美一区二区三区极速播放 | 在线免费观看日本一区| 亚洲欧美日韩中文播放 | 欧美日韩国产欧美日美国产精品| 亚洲图片欧美色图| 欧美精品高清视频| 日韩不卡一区二区| 欧美mv日韩mv| 国产激情视频一区二区在线观看| 国产日韩av一区二区| 不卡的电视剧免费网站有什么| 国产精品日韩成人| www.久久久久久久久| 亚洲视频免费观看| 欧美性xxxxx极品少妇| 日本欧洲一区二区| 精品久久久久久最新网址| 国内精品伊人久久久久影院对白| 久久久久久久久久久久久夜| 精品日韩99亚洲| 国产精品资源站在线| 中文字幕av一区 二区| 色狠狠一区二区三区香蕉| 亚洲图片欧美综合| 精品久久99ma| 成人动漫一区二区在线| 尤物在线观看一区| 欧美成人性福生活免费看| 成人h动漫精品| 亚洲v精品v日韩v欧美v专区| 精品久久国产97色综合| 91首页免费视频| 久久精品国产成人一区二区三区| 国产精品网友自拍| 欧美日韩一区国产| 国产91丝袜在线18|