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

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

?? bstree.cpp

?? C++描述的數據結構內容,在C++builder的環境中運行,這是第二部分
?? CPP
字號:
//二叉搜索樹類的實現BSTree.cpp
//初始化二叉樹,即把樹根指針置空
template<class T>
void BSTree<T>::InitBSTree(BSTree<T> *&BST)
{BST=NULL;}

//判斷二叉樹是否為空
template<class T>
bool BSTree<T>::BSTreeEmpty(BSTree<T> *&BST)
{return BST==NULL;}

//從二叉搜索樹中查找元素
template<class T>
bool BSTree<T>::Find(BSTree<T> *&BST,T item)
{if(BST==NULL) return false;
 else {if(item==BST->data) {
       	item=BST->data;
	return true;}
       	else if(item<BST->data)//遞歸查找左子樹
	  return Find(BST->left,item);
	else                  //遞歸查找右子樹
       return Find(BST->right,item);
}}
//更新二叉搜索樹中的結點值
template<class T>
bool BSTree<T>::Update(BSTree<T> *&BST,const T item,T newc)
{if(BST==NULL) return false;
 else {
   if(item==BST->data) {
     BST->data=newc;
     return true;}
   else if(item<BST->data)
	  return Update(BST->left,item,newc);
	else
	  return Update(BST->right,item,newc);}
}
//向二叉搜索樹中插入元素
template<class T>
void BSTree<T>::Insert(BSTree<T> *&BST,const T &item)
{if(BST==NULL)
  {BSTree<T> *p=new BSTree<T>;
   p->data=item;
   p->left=p->right=NULL;
   BST=p;}
 else if(item<BST->data)
       Insert(BST->left,item);  //向左子樹中插入元素
      else
       Insert(BST->right,item);//向右子樹中插入元素
}
//從二叉搜索樹中刪除元素
template<class T>
bool BSTree<T>::Delete(BSTree<T> *&BST,T item)
{//從二叉搜索樹中查找值為item的結點,指針t指向待比較的結點,
 //指針s指向t的雙親結點,從樹根結點開始比較
  BSTree<T> *t=BST,*s=NULL;
  while(t!=NULL) {
     if(item==t->data) break;
     else if(item<t->data) {
	  s=t; t=t->left;}
	  else {s=t; t=t->right;}
  }
 //若沒有找到待刪除的結點,則返回假
  if(t==NULL) return false;
 //分三種不同情況刪除已查找到的t結點
  if(t->left==NULL && t->right==NULL)
   { //對t結點(即待刪除的結點)為葉子結點的情況進行處理
    if(t==BST) BST=NULL;
    else if(t==s->left) s->left=NULL;
        else  s->right=NULL;
    delete t;}
  else if(t->left==NULL || t->right==NULL)
	{ //對t結點為單分支結點的情況進行處理
	 if(t==BST) {  //刪除樹根結點
	 if(t->left==NULL) BST=t->right;
	 else  BST=t->left;}
       else {//刪除非樹根結點時,分四種情況進行處理
	 if(t==s->left && t->left!=NULL)
            s->left=t->left;
	 else if(t==s->left && t->right!=NULL)
	         s->left=t->right;
	       else if(t==s->right && t->left!=NULL)
                s->right=t->left;
	 else if(t==s->right && t->right!=NULL)
	        s->right=t->right;}
	 delete t;  //回收t結點,即t指針所指向的結點
       }
   else if(t->left!=NULL && t->right!=NULL)
    { //對t結點為雙分支結點的情況進行處理
      //p初始指向t結點,q初始指向p結點的左子樹的根結點
     BSTree<T> *p=t,*q=t->left;
      //查找t結點的中序前驅結點,查找結束后q結點為t結點
      //的中序前驅結點,p結點為q結點的雙親結點
     while(q->right!=NULL) {p=q;q=q->right;}
      //q結點的值賦給t結點
       t->data=q->data;
      //刪除右子樹為空的q結點,使它的左子樹鏈接到它所在的鏈接位置
       if(p==t) t->left=q->left;
       else p->right=q->left;
    //回收q結點
       delete q;}
  //刪除結束后返回真
    return true;
}
//利用數組建立一棵二叉搜索樹
template<class T>
void BSTree<T>::CreateBSTree(BSTree<T> *&BST,T a[],int n)
{BST=NULL;
 for(int i=0;i<n;i++)
   Insert(BST,a[i]);
}
//中序遍歷輸出二叉搜索樹中的所有結點
template<class T>
void BSTree<T>::Inorder(BSTree<T> *&BST)
{if(BST!=NULL) {
  Inorder(BST->left);
  cout<<BST->data<<' ';
  Inorder(BST->right);}
}
//求二叉搜索樹的深度
template<class T>
int BSTree<T>::BSTreeDepth(BSTree<T> *&BST)
{if(BST==NULL) return 0;//對于空樹,返回0并結束遞歸
 else
  {  //計算左子樹的深度
   int dep1=BSTreeDepth(BST->left);
     //計算右子樹的深度
   int dep2=BSTreeDepth(BST->right);
     //返回樹的深度
   if(dep1>dep2) return dep1+1;
   else return dep2+1;}
}
//求二叉搜索樹中所有結點數
template<class T>
int BSTree<T>::BSTreeCount(BSTree<T> *&BST)
{if(BST==NULL) return 0;
 else 
  return BSTreeCount(BST->left)+BSTreeCount(BST->right)+1;
}
//求二叉搜索樹中所有葉子結點數
template<class T>
int BSTree<T>::BSTreeLeafCount(BSTree<T> *&BST)
{if(BST==NULL) return 0;
 else if(BST->left==NULL && BST->right==NULL) return 1;
 else return BSTreeLeafCount(BST->left)+BSTreeLeafCount(BST->right);
}
//按照二叉樹的廣義表表示輸出二叉搜索樹
template<class T>
void BSTree<T>::PrintBSTree(BSTree<T> *&BST)
{if(BST==NULL) return;  //樹為空時返回
 else {//否則執行如下操作
       cout<<BST->data;  //輸出根結點的值
       if(BST->left!=NULL || BST->right!=NULL)
	{cout<<'(';  //輸出左括號
	 PrintBSTree(BST->left);  //輸出左子樹
	 if(BST->right!=NULL)
	  cout<<',';  //若右子樹不為空則輸出逗號分隔符
         PrintBSTree(BST->right);  //輸出右子樹
	  cout<<')';} //輸出右括號
}}
//清除二叉搜索樹,使之變為一棵空樹
template<class T>
void BSTree<T>::ClearBSTree(BSTree<T> *&BST)
{if(BST!=NULL)
  {//當二叉樹非空時進行如下操作
   ClearBSTree(BST->left);   //刪除左子樹
   ClearBSTree(BST->right);  //刪除右子樹
   delete BST;               //刪除根結點
   BST=NULL;}}               //置根指針為空

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av亚洲一区中文字幕| 欧美日韩一区二区三区四区五区| 秋霞成人午夜伦在线观看| 亚洲欧美另类在线| 一区二区三区四区在线播放 | 久久久久亚洲综合| 国产偷v国产偷v亚洲高清| 亚洲国产高清在线| 亚洲狠狠爱一区二区三区| 激情亚洲综合在线| 色中色一区二区| www激情久久| 视频在线观看91| 99re亚洲国产精品| 精品国产1区二区| 日本在线观看不卡视频| 99久久夜色精品国产网站| 日韩欧美中文一区二区| 一区二区三区 在线观看视频| 国产在线视频不卡二| 欧美一区二区精品在线| 一区二区三区中文字幕| 成人av一区二区三区| 日韩精品一区二区在线| 美脚の诱脚舐め脚责91| 欧美视频精品在线观看| 亚洲综合久久av| 91污片在线观看| 亚洲日本在线天堂| av资源网一区| 一区二区视频免费在线观看| 色女孩综合影院| 日韩成人午夜精品| 91精品午夜视频| 国产综合久久久久久鬼色| 精品国产1区二区| 成人精品国产免费网站| 亚洲日本丝袜连裤袜办公室| 不卡一二三区首页| 亚洲一区二区欧美激情| 日韩欧美一区二区免费| 国产成人免费视频网站| 亚洲精品欧美综合四区| 欧美精品一区男女天堂| 色综合天天狠狠| 久久99久久99小草精品免视看| 精品国免费一区二区三区| 国产成人丝袜美腿| 午夜电影网一区| 国产精品国产自产拍高清av王其| 欧美日韩高清一区二区三区| 国产高清视频一区| 日韩国产欧美在线视频| 亚洲少妇30p| 一区二区三区**美女毛片| 国产在线国偷精品免费看| 91国产视频在线观看| 亚洲精品国产一区二区精华液| 94-欧美-setu| 成人18视频日本| 成人丝袜18视频在线观看| 日本不卡高清视频| 五月天欧美精品| 国产精品久久免费看| 欧美成人精精品一区二区频| 欧美人伦禁忌dvd放荡欲情| 在线观看三级视频欧美| 色悠悠久久综合| 91福利精品第一导航| 欧美体内she精高潮| 欧美午夜精品久久久久久孕妇 | 久久综合色综合88| 777欧美精品| 久久久国产精品午夜一区ai换脸| 欧美日韩中文字幕精品| 欧美丰满美乳xxx高潮www| 日韩欧美视频一区| 久久精品无码一区二区三区| 欧美精彩视频一区二区三区| 国产精品美女视频| 亚洲午夜日本在线观看| 亚洲妇熟xx妇色黄| 亚洲成精国产精品女| 日本欧美一区二区| 成人国产精品免费观看视频| 色av成人天堂桃色av| 91精品中文字幕一区二区三区| 精品精品国产高清a毛片牛牛 | 天天综合网天天综合色| 国产ts人妖一区二区| 欧美日韩午夜精品| 国产精品久久久久久亚洲伦| 天天爽夜夜爽夜夜爽精品视频| 麻豆精品在线播放| 色综合天天综合狠狠| 久久久精品欧美丰满| 免费成人av在线| 成人午夜激情在线| 精品国产区一区| 久久不见久久见中文字幕免费| 91精品1区2区| 夜夜亚洲天天久久| 国产99精品在线观看| 精品国产露脸精彩对白| 爽好多水快深点欧美视频| 日本丶国产丶欧美色综合| 国产精品毛片无遮挡高清| 久久电影网站中文字幕| 日韩精品专区在线影院重磅| 亚洲高清在线视频| 欧美主播一区二区三区| 一区二区成人在线| 欧美三区在线观看| 婷婷成人综合网| 久久综合狠狠综合久久综合88| 国产精品白丝av| 中文字幕一区二区三区四区| 91免费精品国自产拍在线不卡| 国产精品女同一区二区三区| av亚洲精华国产精华精| 亚洲专区一二三| 日韩一级大片在线观看| 国产成人精品午夜视频免费| 亚洲欧美乱综合| 久久久久国产一区二区三区四区| 99国内精品久久| 国模冰冰炮一区二区| 亚洲男同性视频| 欧洲一区二区三区免费视频| 日本一区中文字幕| 亚洲欧洲在线观看av| 欧美大尺度电影在线| 欧美私模裸体表演在线观看| 色视频欧美一区二区三区| 欧美bbbbb| 蜜臀久久99精品久久久久久9 | 亚洲成a人在线观看| 国产视频一区不卡| 91超碰这里只有精品国产| 成人丝袜视频网| 国产一区二区三区免费在线观看| 亚洲成va人在线观看| 中文字幕综合网| 日本一区二区成人| 欧美韩日一区二区三区| 久久久久国产精品免费免费搜索| 制服丝袜中文字幕亚洲| 91精品在线免费| 欧美一区二区播放| 777色狠狠一区二区三区| 欧美人动与zoxxxx乱| 精品国产一区二区三区久久久蜜月| 欧美人体做爰大胆视频| 欧美一区二区高清| 久久新电视剧免费观看| 国产欧美一二三区| 亚洲六月丁香色婷婷综合久久| 亚洲欧洲国产日本综合| 亚洲国产精品久久艾草纯爱| 亚洲国产日韩在线一区模特| 欧美96一区二区免费视频| 成人深夜在线观看| 在线观看91av| 国产日韩亚洲欧美综合| 午夜日韩在线观看| 国产乱码精品一区二区三区五月婷| 国产91高潮流白浆在线麻豆| 欧美日韩久久久| 综合久久久久综合| 成人精品免费网站| 日韩一区二区三区视频在线观看| 91精品国产高清一区二区三区蜜臀| 久久久久久一二三区| 五月天久久比比资源色| av成人免费在线| 国产精品午夜在线观看| 国模无码大尺度一区二区三区| 欧美亚洲日本一区| 亚洲精品久久久蜜桃| 99久久er热在这里只有精品15| 26uuu国产一区二区三区| 精品在线你懂的| 日韩欧美一区在线| 午夜精品一区二区三区三上悠亚| 99久久99久久精品免费观看| 国产精品网友自拍| av电影天堂一区二区在线| 国产精品久久久久7777按摩| 欧美一区二区三区在线观看 | 精品一区二区免费| 精品福利av导航| 久草中文综合在线| 久久精品亚洲精品国产欧美| 福利电影一区二区| 亚洲黄色小说网站| 欧美一区二视频| 成人av午夜影院| 日本在线观看不卡视频| 久久久久久久久岛国免费| 91在线国产福利|