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

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

?? bisorttree.cpp

?? 二叉排序數(shù)。包括排序
?? CPP
字號(hào):
#include<iostream.h>
typedef struct TreeNode
{
int key;
struct TreeNode *left;
struct TreeNode *right;

}treeNode;

class BiSortTree
{
public:
    BiSortTree(void);
void desplayTree(void);//顯示這個(gè)樹
void insertTree(int key);//在樹中插入一個(gè)值
  deleteTree(int key);//在樹中刪除一個(gè)值
    treeNode* searchTree(int key);//在樹中查找一個(gè)值
    
~BiSortTree();

private:
treeNode*  buildTree(treeNode* head,int number);//建立一個(gè)樹
treeNode*  search(treeNode* head ,int key);//查找
treeNode* BiSortTree::searchParent(treeNode* head,treeNode* p);//查找出p的父親節(jié)點(diǎn)的指針
treeNode* BiSortTree::searchMinRight(treeNode* head);//找到右子樹中最小的節(jié)點(diǎn)

void showTree(treeNode* head);//顯示
    void destroyTree(treeNode* head);//刪除

treeNode *Head;
    



};



/**************以下是建立一個(gè)二叉排序樹****************/
BiSortTree::BiSortTree()
{
   cout<<"建立一棵二叉排序樹,請(qǐng)輸入你要建樹的所有數(shù)(以-1 作為結(jié)束標(biāo)志!): "<<endl;
   Head=NULL;
   int number;
   cin>>number;
   while(number!=-1)
   {
   Head=buildTree(Head,number);
       cin>>number;  
   
   }

}
treeNode* BiSortTree::buildTree(treeNode* head,int number)
{

treeNode *p;    
p=new treeNode;
    p->key=number;
p->left =p->right=NULL;

if(head==NULL)
{

     
      return p;
}
else
{
  
       if(p->key <head->key)
head->left=buildTree(head->left,number);
   else
  head->right=buildTree(head->right,number);
  
       return head;
}





}
/*****************以下是在一棵二叉排序樹插入一個(gè)數(shù)***********************************/
void BiSortTree::insertTree(int key)
{

Head=buildTree(Head,key);

}
/*****************以下是在一個(gè)二叉排序樹查找一個(gè)數(shù)是否存在*************************/
treeNode*  BiSortTree::searchTree(int key)
{
return search(Head,key);
}
treeNode* BiSortTree::search(treeNode* head ,int key)
{  
if(head==NULL)
return NULL;
if(head->key==key)
return head;
else 
{
if(key<head->key )
return search( head->left,key);

    else
return search(head->right,key);


}

}

/************以下是在一個(gè)二叉排序樹刪除一個(gè)給定的值*********************************/
BiSortTree::deleteTree(int key)
{

treeNode *p;
p=NULL;
    p=search(Head,key);
if(p==NULL)
{
cout<<"Don't find the key";

}
    if(p==Head)
{
Head=NULL;

}
else
{ 
treeNode* parent;
parent=searchParent(Head,p);
if(p->left==NULL&&p->right==NULL)//葉子節(jié)點(diǎn)
{
    if(parent->left==p)
{
parent->left=NULL;
}
    else
{
parent->right=NULL;

}
}
        else//非葉子節(jié)點(diǎn)
{
           if(p->right==NULL)//該節(jié)點(diǎn)沒有右孩子
   {
   if(parent->left==p)
   {
     parent->left=p->left ;
   }
       else
   {
   parent->right=p->left;

   }
   }

   else//該點(diǎn)有左右孩子
   {
   treeNode * rightMinSon,* secondParent;//secondParent為右子樹中的最小節(jié)點(diǎn)的父親
   rightMinSon=searchMinRight(p->right);
   secondParent=searchParent(p->right ,rightMinSon);
           
               secondParent->left=rightMinSon->right;
  
                               
           if(p->right==rightMinSon)//右子樹中的最小節(jié)點(diǎn)的父親為p
   {
      
        p->right=rightMinSon->right ;
  
   }
      
   p->key=rightMinSon->key ;

      
      
   } 
}
}
}

treeNode* BiSortTree::searchParent(treeNode* head,treeNode* p)
{


if(head->left==p||head->right==p||head==p||head==NULL)
return head;
    else
{
if(p->key<head->key)
return searchParent(head->left ,p);
else
return searchParent(head->right ,p);


}


}

treeNode* BiSortTree::searchMinRight(treeNode* head)//找到右子樹中最小的節(jié)點(diǎn)
{


if(head->left ==NULL||head==NULL)
{
return head;

}
else
{
return searchMinRight(head->left);

}



}

/*****************以下是顯示一個(gè)二叉排序樹****************************************/
void BiSortTree::desplayTree(void)
{

showTree(Head);
cout<<endl;
}
void BiSortTree::showTree(treeNode* Head)
{

if(Head!=NULL)
{
showTree(Head->left ) ;

    cout<<Head->key<<' ' ;

showTree(Head->right) ;

}


}





/*****************以下是刪除一棵整二叉排序樹************************************/
BiSortTree::~BiSortTree()
{
cout<<"已經(jīng)消除了一棵樹!!!!"<<endl;
destroyTree(Head);
}
void BiSortTree::destroyTree(treeNode* head )
{

if(head!=NULL)
{
destroyTree(head->left );
destroyTree(head->right );
delete head;

}

}

/*********************/
void print()
{

    cout<<endl<<endl<<"以下是對(duì)二叉排序樹的基本操作:"<<endl
<<"1.顯示樹"<<endl
    <<"2.插入一個(gè)節(jié)點(diǎn)"<<endl
<<"3.尋找一個(gè)節(jié)點(diǎn)"<<endl
<<"4.刪除一個(gè)節(jié)點(diǎn)"<<endl;
}

void main()
{
BiSortTree tree;
    int number;
int choiceNumber;
    char flag;
while(1)
{
       print() ;   

   cout<<"請(qǐng)選擇你要進(jìn)行的操作(1~4)"<<endl;
   cin>>choiceNumber;
   switch(choiceNumber)
   {
          case 1:   
          tree.desplayTree();break;
              case 2:
          cout<<"請(qǐng)插入一個(gè)數(shù): "<<endl;
                  cin>>number;
              tree.insertTree(number);
                  tree.desplayTree();
          break;
    
              case 3:
              cout<<"請(qǐng)插入你要找數(shù): "<<endl;
          cin>>number;   
                  if(tree.searchTree(number)==NULL)
  {
                cout<<"沒有發(fā)現(xiàn)"<<endl;
  }
                  else
  {
   
                    cout<<"發(fā)現(xiàn)"<<endl;
   
  }
          break;

         case 4:
          cout<<"請(qǐng)輸入你要?jiǎng)h除的數(shù): "<<endl;  
          cin>>number;
              tree.deleteTree(number);
                  tree.desplayTree();
          break;

        default: break;
   }
      cout<<"你是否要繼續(xù)(Y/N)?"<<endl;
      cin>>flag;
  if(flag=='N'||flag=='n')
break;



}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区精品在线播放| 日韩欧美一级精品久久| 亚洲精品免费在线播放| 91在线观看一区二区| 亚洲少妇中出一区| 欧美视频日韩视频在线观看| 日日摸夜夜添夜夜添精品视频| 色综合久久久久综合99| 亚洲福利视频一区二区| 欧美电视剧免费观看| 狠狠色综合播放一区二区| 国产欧美一区二区精品久导航| 成人福利视频在线| 午夜在线成人av| 欧美精品一区二区三区很污很色的| 国产成人精品影视| 亚洲男人天堂av| 日韩欧美黄色影院| 粉嫩aⅴ一区二区三区四区| 一区二区不卡在线播放 | 亚洲国产精品传媒在线观看| 波多野结衣视频一区| 亚洲va欧美va人人爽| 精品久久久三级丝袜| 91丨porny丨国产入口| 午夜日韩在线观看| 久久久蜜桃精品| 欧美三级三级三级爽爽爽| 国产一区二区三区精品视频| 亚洲最新视频在线观看| 日韩美女在线视频| 在线一区二区视频| 国产一区二区三区在线看麻豆| 亚洲免费观看高清| 久久久精品免费网站| 欧美日韩日日摸| 99国产精品久| 激情欧美日韩一区二区| 亚洲女与黑人做爰| 久久久国产精华| 欧美精品第1页| 91亚洲精品久久久蜜桃网站| 久久99国内精品| 亚洲成人免费影院| 亚洲欧美二区三区| 久久久久久麻豆| 日韩午夜电影在线观看| 欧美影片第一页| 91小视频在线| 成人精品视频一区二区三区尤物| 久久疯狂做爰流白浆xx| 亚洲va天堂va国产va久| 亚洲人成电影网站色mp4| 亚洲国产精品精华液ab| 欧美xxxxxxxx| 欧美大片日本大片免费观看| 91精品国产日韩91久久久久久| 91激情五月电影| 99精品在线观看视频| 成人精品免费视频| 国产成人av电影在线观看| 免费在线观看不卡| 日韩精品欧美精品| 全部av―极品视觉盛宴亚洲| 亚洲成人免费视| 午夜成人免费视频| 午夜精品福利一区二区三区av | 国产午夜精品一区二区| 久久亚洲综合av| 国产亚洲视频系列| 国产三级精品视频| 国产精品乱人伦| 亚洲色图在线看| 亚洲男女一区二区三区| 怡红院av一区二区三区| 亚洲国产一区二区三区青草影视| 亚洲精品高清在线| 一区二区三区日韩欧美| 亚洲伊人伊色伊影伊综合网| 亚洲伊人伊色伊影伊综合网| 亚洲高清免费视频| 麻豆一区二区99久久久久| 九色porny丨国产精品| 韩国成人在线视频| 成人精品鲁一区一区二区| 成人av小说网| 日本韩国精品在线| 欧美日韩小视频| 欧美电影免费观看完整版| 久久久另类综合| 国产精品久99| 亚洲一区二区三区四区在线观看| 日韩国产欧美一区二区三区| 乱中年女人伦av一区二区| 国产美女精品一区二区三区| 国产sm精品调教视频网站| 色婷婷精品久久二区二区蜜臀av| 欧美剧在线免费观看网站 | 亚洲国产日韩一区二区| 婷婷综合在线观看| 久久国内精品自在自线400部| 国产99久久久国产精品免费看| 91麻豆swag| 日韩午夜电影在线观看| 中文字幕av资源一区| 亚洲制服丝袜在线| 激情综合五月天| 日本韩国欧美国产| 欧美一级理论片| 中文字幕视频一区二区三区久| 亚洲一线二线三线久久久| 蜜臀av性久久久久蜜臀av麻豆| 粉嫩aⅴ一区二区三区四区| 在线视频你懂得一区二区三区| 欧美一二三区精品| 亚洲欧美日韩在线| 国产一区二区在线看| 欧美亚洲免费在线一区| 国产亚洲精品精华液| 亚洲成a人片综合在线| 国产黄色精品网站| 欧美精品视频www在线观看| 国产三级精品三级在线专区| 午夜精品福利一区二区三区蜜桃| 国产一区二区三区免费| 欧美日韩亚洲国产综合| 中文字幕免费在线观看视频一区| 香蕉久久一区二区不卡无毒影院| 岛国av在线一区| 日韩精品中文字幕一区二区三区| 亚洲欧美国产77777| 国产激情一区二区三区四区| 欧美一区二区国产| 一区二区免费在线播放| 丰满亚洲少妇av| 日韩欧美一区在线观看| 亚洲一级二级三级| 99re66热这里只有精品3直播| 日韩视频免费观看高清完整版| 洋洋成人永久网站入口| 国产aⅴ综合色| 亚洲精品一区二区三区蜜桃下载| 偷拍亚洲欧洲综合| 在线视频中文字幕一区二区| 国产精品视频在线看| 国产真实乱偷精品视频免| 欧美疯狂做受xxxx富婆| 亚洲国产一区视频| 在线观看一区二区视频| 亚洲精选一二三| av一本久道久久综合久久鬼色| 国产色综合一区| 国产精品小仙女| 精品对白一区国产伦| 裸体一区二区三区| 日韩欧美国产综合在线一区二区三区| 午夜久久久久久电影| 欧美日韩高清一区二区| 午夜精品国产更新| 91精品国产综合久久精品app| 亚洲国产三级在线| 欧美精品vⅰdeose4hd| 天天爽夜夜爽夜夜爽精品视频| 欧美日韩国产电影| 免费看欧美美女黄的网站| 91精品国产品国语在线不卡| 三级欧美在线一区| 日韩视频在线你懂得| 精品一区二区三区欧美| 久久久久久久久久久电影| 国产精品1区二区.| 欧美激情综合五月色丁香小说| 成人黄色片在线观看| 亚洲欧美色图小说| 欧美三级电影精品| 六月丁香综合在线视频| 久久天天做天天爱综合色| 风间由美性色一区二区三区| 国产精品成人一区二区三区夜夜夜| 97久久超碰国产精品电影| 亚洲精品成人少妇| 欧美精品久久久久久久多人混战 | 欧美日本韩国一区二区三区视频 | 中文字幕一区二区三中文字幕| 91丝袜美女网| 日韩电影在线一区二区三区| 91精品国产日韩91久久久久久| 狠狠狠色丁香婷婷综合久久五月| 国产人久久人人人人爽| 91免费国产在线观看| 日韩av不卡在线观看| 久久久久久久久久久久久女国产乱 | 日韩电影在线免费| 精品国产污网站| 成人av在线网站| 日韩成人伦理电影在线观看| 国产色91在线| 欧美日韩国产免费一区二区| 激情综合网最新| 亚洲一区二区在线播放相泽|