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

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

?? 平衡樹.cpp

?? 查找序列以帶頭結點的單鏈表表示
?? CPP
字號:
/*
  Name: 平衡樹 
  Copyright: 
  Author: 
  Date: 02-12-08 18:12
  Description: 
*/
#define LH +1//左子樹比右子樹高1 
#define EH 0 //相等 
#define RH -1//右子樹比左子樹高1 
#define TRUE 1//樹長高 
#define FALSE 0//樹未長高 

#include<stdio.h>
#include<stdlib.h>
#include <malloc.h>
# include <iostream>

using namespace std;

typedef struct BSTNode //二叉樹的節點
{
   char data;//存儲關鍵字 
   int bf;   //平衡度 
   struct BSTNode * lchild, * rchild;
}BSTNode,* BSTree;

int insert(BSTree & root,char key,int & taller);//聲明函數 insert,用于插入關鍵字  
void leftbalance(BSTree & root);//聲明左平衡函數 leftbalance
void rightbalance(BSTree & root);//聲明右平衡函數 rightbalance
void r_rotate(BSTree & p);//聲明右旋函數  r_rotate
void l_rotate(BSTree &p);//聲明左旋函數  l_rotate
void inorder(BSTree root);//聲明逆中序遍歷函數inorder, 

main()
{
   char key;//代表關鍵字 
   BSTree T=NULL; //代表樹根 
   int taller=FALSE;//代表樹是否長高
    
   cout << "please enter the string(end with a '#')"<<endl;//讀入關鍵字 
   cin >> key;
   
   while(key!='#')
   {
      insert(T,key,taller);//插入關鍵字 
      
      cout<<"the reverse inorder is"<<endl;//逆中序遍歷樹 
      inorder(T);
      cout<<endl;
      
      cin>>key;//讀入下一個關鍵字 
   }
   
   system("pause");
   return 0;
}

//定義遍歷樹的函數postorder 
void inorder(BSTree root)
{
   if(root)
   {
      inorder(root->rchild);//遍歷右子樹 
      cout<<root->data<<"  ";
      inorder(root->lchild);//遍歷左子樹 
   }
}

//定義函數 insert,用于插入關鍵字 
int insert(BSTree & root,char key,int & taller)
{
   if(!root)//是空樹 
   {
      root=(BSTree)malloc(sizeof(BSTNode)) ;//動態申請內存 
      root->data=key;
      root->lchild=root->rchild=NULL;
      root->bf=EH;
      taller=TRUE;
   }
   else
   {
      if(key==root->data)//查找到了關鍵字 
      {
         taller=FALSE;
         return 0;
      }
      if(key<root->data)//關鍵字小 
      {
         if(!insert(root->lchild,key,taller))   return 0;//在左子樹中查找 
         if(taller)//已插入并且左子樹長高 
            switch(root->bf)
            {
               case LH:
                  leftbalance(root);taller=FALSE;break;//原本左子樹高,進行左平衡 
               case EH:
                  root->bf=LH;taller=TRUE;break;//原本左右子樹等高 ,現在左子樹長高使樹長高 
               case RH:
                  root->bf=EH;taller=FALSE;break;//原本右子樹高.現在等高 
            }
      }
      else
      {
         if(!insert(root->rchild,key,taller))   return 0;//在右子樹中查找
         if(taller)//已插入并且右子樹長高
            switch(root->bf)
            {
               case RH:
                  rightbalance(root);taller=FALSE;break;//原本右子樹高,進行右平衡
               case EH:
                  root->bf=RH;taller=TRUE;break;//原本左右子樹等高 ,現在右子樹長高使樹長高 
               case LH:
                  root->bf=EH;taller=FALSE;break;//原本左子樹高.現在等高 
            }
      }
   }
   return 1;
}

//定義左平衡函數 leftbalance
void leftbalance(BSTree & root)
{
   BSTree lc,rd;//代表左孩子,和左孩子的右子樹 
   
   lc=root->lchild;

   switch(lc->bf)
   {
      case LH://要插入的節點在根的左孩子的左子樹上,做單右旋處理 
         root->bf=lc->bf=EH;
         r_rotate(root);break;
      case RH://要插入的節點在根的左孩子的右子樹上,做雙旋處理
         rd=lc->rchild;
         switch(rd->bf)//修改根和它左孩子的平衡因子 
         {
            case LH:
               root->bf=RH;
               lc->bf=EH;
               break;
            case EH:
               root->bf=lc->bf=EH;
               break;
            case RH:
               root->bf=EH;
               lc->bf=LH;
               break;
         }
         rd->bf=EH;
         l_rotate(root->lchild); 
         r_rotate(root);
   }
}

//定義右平衡函數 rightbalance
void rightbalance(BSTree & root)
{
   BSTree rc,ld;//代表右孩子 ,和右孩子的左子樹 
   
   rc=root->rchild;

   switch(rc->bf)//檢查右孩子的平衡因子 
   {
      case RH://要插入的節點在根的右孩子的右子樹上,做單右旋處理
         root->bf=rc->bf=EH;
         l_rotate(root);break;
      case LH://要插入的節點在根的右孩子的左子樹上,做雙旋處理
         ld=rc->lchild;
         switch(ld->bf)//修改根和它右孩子的平衡因子 
         {
            case LH:
               root->bf=RH;
               rc->bf=EH;
               break;
            case EH:
               root->bf=rc->bf=EH;
               break;
            case RH:
               root->bf=EH;
               rc->bf=LH;
               break;
         }
         ld->bf=EH;
         r_rotate(root->rchild);
         l_rotate(root);
   }
}

//定義左旋函數  r_rotate
void l_rotate(BSTree & p)
{
  BSTree rc;
  
  rc=p->rchild;  
  p->rchild=rc->lchild; 
  rc->lchild=p;    
  p=rc;   
}

//定義右旋函數  r_rotate
void r_rotate(BSTree & p)
{
  BSTree lc ;
  
  lc=p->lchild ;  
  p->lchild=lc->rchild ; 
  lc->rchild=p ;    
  p=lc ;           
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一二区| 69p69国产精品| 中文字幕一区二区三区乱码在线 | 成人av网站免费| 亚洲欧洲日产国码二区| 91同城在线观看| 天堂av在线一区| 久久影院视频免费| 99久久伊人网影院| 亚洲午夜久久久久| 久久女同性恋中文字幕| 99久久国产综合精品女不卡| 亚洲国产精品欧美一二99| 91精品国产色综合久久ai换脸| 国产精品一区二区x88av| 国产色爱av资源综合区| 91成人在线观看喷潮| 美女视频网站黄色亚洲| 欧美激情一区二区三区全黄| 欧洲另类一二三四区| 精品亚洲免费视频| 亚洲免费观看高清在线观看| 欧美一级片在线看| 99久久伊人久久99| 久久精品国产成人一区二区三区 | av在线不卡网| 日本91福利区| √…a在线天堂一区| 欧美一级生活片| 色一情一乱一乱一91av| 精品一区二区国语对白| 一区二区三区视频在线看| 精品动漫一区二区三区在线观看| 成人精品国产一区二区4080| 日韩激情视频在线观看| 亚洲日本丝袜连裤袜办公室| 精品粉嫩aⅴ一区二区三区四区| 色噜噜狠狠色综合中国| 国产91在线观看| 免费看精品久久片| 亚洲最新视频在线播放| 国产精品美女久久久久av爽李琼| 久久久久免费观看| 91美女片黄在线| 懂色av一区二区三区免费看| 久草在线在线精品观看| 天天影视涩香欲综合网| 亚洲精品成人少妇| 中文字幕制服丝袜成人av| 日韩免费电影网站| 欧美男同性恋视频网站| 色婷婷综合久久久久中文| 国产精华液一区二区三区| 狂野欧美性猛交blacked| 亚洲成人久久影院| 亚洲一区二三区| 亚洲综合色噜噜狠狠| 亚洲日本va在线观看| 国产精品不卡视频| 亚洲欧美一区二区三区国产精品| 国产精品电影院| 亚洲欧美色综合| 一区二区三区在线影院| 一区二区三区美女视频| 亚洲精品免费在线播放| 亚洲午夜久久久久久久久久久| 一区二区视频在线| 亚洲一区在线观看网站| 日韩精品一二三四| 精品在线视频一区| 成人午夜看片网址| 91视频你懂的| 欧美精品色一区二区三区| 中文字幕av一区二区三区免费看| www日韩大片| 国产精品国产三级国产普通话蜜臀| 国产精品久久久久桃色tv| 亚洲欧美激情小说另类| 亚洲国产精品视频| 久久国产麻豆精品| 国产精品91一区二区| eeuss影院一区二区三区| 91官网在线免费观看| 7777精品伊人久久久大香线蕉超级流畅| 4438亚洲最大| 国产欧美一区二区在线| 亚洲精品国产a| 精品在线观看视频| 99久久婷婷国产综合精品电影| 欧美日韩午夜在线| 久久久久久久性| 亚洲欧美偷拍三级| 久久超碰97中文字幕| 91在线免费视频观看| 欧美电影一区二区三区| 中文字幕第一区| 日韩电影在线免费观看| 成人性色生活片| 9191久久久久久久久久久| 国产欧美视频一区二区三区| 亚洲图片欧美视频| 成人性生交大合| 欧美一级夜夜爽| 一区二区欧美视频| 国产成人啪午夜精品网站男同| 在线观看日产精品| 久久久精品综合| 日韩av一二三| 91小宝寻花一区二区三区| 精品久久久久久综合日本欧美| 亚洲精品中文在线| 成人午夜激情影院| 日韩一本二本av| 亚洲动漫第一页| 91一区一区三区| 国产精品网站在线观看| 寂寞少妇一区二区三区| 91精品婷婷国产综合久久竹菊| 亚洲欧美韩国综合色| 成人精品鲁一区一区二区| 精品久久一二三区| 麻豆一区二区三区| 666欧美在线视频| 亚洲福利视频导航| 欧美亚洲高清一区二区三区不卡| 国产女主播视频一区二区| 狠狠色丁香久久婷婷综| 日韩一区二区精品葵司在线| 午夜精品福利久久久| 欧美综合久久久| 亚洲一区二区三区视频在线播放| 91在线观看免费视频| 综合电影一区二区三区| 成人性生交大片| 中文字幕在线观看不卡| 成人精品鲁一区一区二区| 精品国产乱码久久久久久免费| 日本免费新一区视频| 91麻豆精品国产91久久久资源速度| 亚洲乱码国产乱码精品精可以看| 99久久夜色精品国产网站| 国产精品久久网站| 91在线视频免费观看| 综合久久给合久久狠狠狠97色| 91在线播放网址| 亚洲精品国产无套在线观| 欧美综合久久久| 青青草伊人久久| 久久婷婷一区二区三区| 国产成人自拍网| 亚洲私人影院在线观看| 在线观看亚洲精品视频| 日精品一区二区三区| 欧美电影免费观看高清完整版| 久久疯狂做爰流白浆xx| 国产三级精品在线| 99精品国产视频| 午夜一区二区三区视频| 在线综合亚洲欧美在线视频| 国产乱子轮精品视频| 亚洲国产精华液网站w| 一本久道久久综合中文字幕| 丝袜诱惑亚洲看片| 久久精品一区八戒影视| 色域天天综合网| 麻豆国产欧美一区二区三区| 国产精品私人自拍| 欧美日韩精品一区二区在线播放 | 日韩午夜在线影院| 国产麻豆精品在线观看| 亚洲免费观看高清完整版在线观看| 欧美日韩亚洲国产综合| 国产高清视频一区| 亚洲高清视频在线| 久久亚洲影视婷婷| 91福利视频久久久久| 精品亚洲国内自在自线福利| 亚洲女同女同女同女同女同69| 制服.丝袜.亚洲.中文.综合| 成人国产电影网| 蜜臀av一区二区三区| 玉米视频成人免费看| 欧美成人欧美edvon| 在线观看免费视频综合| 国产精品一区二区x88av| 午夜电影网一区| 国产精品盗摄一区二区三区| 91精品久久久久久久91蜜桃| 99久久伊人网影院| 国产一区二区日韩精品| 水野朝阳av一区二区三区| 国产精品护士白丝一区av| 精品乱码亚洲一区二区不卡| 欧美日韩精品一区二区三区四区 | 国产成人自拍网| 免费观看一级特黄欧美大片| 亚洲精品少妇30p| 亚洲欧美在线视频| 久久久蜜桃精品| 精品国产一区二区三区四区四|