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

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

?? cd5_3u.cpp

?? C++ Builder程序員學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)第4章
?? CPP
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "cd5_3u.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
class bntree;

class node        //結(jié)點類
{
   public:
      int data;
      node* left;                                //左子樹指針
      node* right;                               //右子樹指針
      node():data(0),left(NULL),right(NULL){}    //結(jié)點構(gòu)建時的設(shè)置
      getdata(){return data;}                     //取得結(jié)點內(nèi)容
};

class bntree                           	//二叉樹類
{
   public:
      void insert(int da,int *lv,int *d)           //安插一個新結(jié)點的函數(shù)
      {
         node* newnode=new node;           //產(chǎn)生新結(jié)點
         newnode->data=da;
         if(root==NULL)           //如果二叉樹為空,建立根結(jié)點
            root=newnode;
         else
         {
            node* P=root;
            node* F;
            while(1)                          //自動循環(huán)直到return為止
            {
               *d=(*d)+1;                   //用指針傳遞函數(shù)間的d值
               F=P;
               if(da < (P->data))           //新加入的值小于目前結(jié)點值
               {
                  *lv=(*lv)*2;              //用指針傳遞函數(shù)間的lv值
                  P=P->left;
                  if(P==NULL)         //若此結(jié)點無數(shù)據(jù),新值設(shè)置在此并跳出循環(huán)
                  {
                     F->left=newnode;
                     return ;
                  }
               }
               else                      //新加入的值小于當(dāng)前結(jié)點值
               {
                  *lv=(*lv)*2+1;
                  P=P->right;
                  if(P==NULL)
                  {
                     F->right=newnode;
                     return ;
                  }
               }
            }
         }
      }
      int find(int k,int l)               //搜尋樹中結(jié)點位置的函數(shù)
      {
         node* P=root;
         while(P->getdata()!=k)            //當(dāng)前結(jié)點數(shù)據(jù)不等于搜尋值時運行
         {
            if(k<P->data)                //當(dāng)搜尋值小于當(dāng)前數(shù)據(jù)時往左子結(jié)點移動
            {
               P=P->left;
               l=l*2;
            }
            else
            {
               P=P->right;
               l=l*2+1;
            }
            if(P==NULL)                   //找不到要搜尋的結(jié)點返回0
               return 0;
         }
         return l;                      //返回搜索成功的結(jié)點位置
      }
      void droot(){clear(root);}        //用連續(xù)調(diào)用遞歸的方式清除所有結(jié)點
      void clear(node* T)               //清除二叉樹結(jié)點
      {
         if(T!=NULL)
         {
            clear(T->left);       //不斷調(diào)用清除函數(shù)以尋找端點
            clear(T->right);      //清除該端的葉子結(jié)點
            delete T;
         }
      }
   private:
      node* root;
};
bntree tree;              //新建立一個bntree類別,名稱為tree
int dat,l,timer=0;
int i;
TShape *sp[32];  //為取得運行時所構(gòu)建的對象,所以將其聲明為數(shù)組以便索引
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void create(int lv,int d,int da)      //構(gòu)建窗體顯示控件的函數(shù)
{
   static int p[16];

   TColor color[5]={clWhite,clYellow,clLime,clBlue,clRed};
   sp[lv]=new TShape(Form1);        //構(gòu)建的結(jié)點控件形體
   sp[lv]->Parent=Form1->pn;
   sp[lv]->Height=20;
   sp[lv]->Width=30;

   TLabel *lb;                  //構(gòu)建結(jié)點控件內(nèi)容表示
   lb=new TLabel(Form1);
   lb->Parent=Form1->pn;
   lb->Height=20;
   lb->Width=30;
   lb->Transparent=true;
   lb->Caption=IntToStr(da);

   sp[lv]->Top=20+d*35;
   lb->Top=24+d*35;

   if(d==0)                   //取得結(jié)點左端座標(biāo)
   {
      sp[lv]->Left=175;
      lb->Left=185;
   }
   else
   {
      sp[lv]->Left=175-d*40+(d*80/(pow(2,d)-1)*(lv-(pow(2,d))));
      lb->Left=185-d*40+(d*80/(pow(2,d)-1)*(lv-(pow(2,d))));

      Form1->img->Canvas->MoveTo(p[lv/2],35+(d-1)*35);      //構(gòu)建結(jié)點連接線段
      Form1->img->Canvas->LineTo((sp[lv]->Left)+15,(sp[lv]->Top)+15);
   }

   sp[lv]->Shape=stEllipse;
   sp[lv]->Brush->Color=color[d];         //結(jié)點顏色根據(jù)所在層而變化

   if(lv<16)
      p[lv]=(sp[lv]->Left)+15;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)   	//增加新結(jié)點
{
   int lv=1,d=0;                          //設(shè)置深度及位置的初始值
   dat=StrToInt(ein->Text);
   tree.insert(dat,&lv,&d);    //調(diào)用安插新結(jié)點的函數(shù)
   ein->Text="";
   if(d<5)
      create(lv,d,dat);        //調(diào)用生成窗體顯示控件的函數(shù)
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)     //關(guān)閉程序并清除結(jié)點
{
   tree.droot();
   Close();
}
//---------------------------------------------------------------------------
void fnode(int l)
{
   sp[l]->Shape=stRoundRect;            //將找到的結(jié)點形狀改為圓角方形
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)       //搜尋二叉樹結(jié)點
{
   int key;
   l=1;
   key=StrToInt(ein->Text);
   l=tree.find(key,l);                //調(diào)用搜索函數(shù),并將值返回給l
            //函數(shù)返回一個值可直接傳遞,若欲返回兩個以上則可用適當(dāng)?shù)淖兞炕蛑羔?   if(l==0)
      ShowMessage("找不到"+IntToStr(key)+" 這個數(shù)");
   else
   {
      fnode(l);           //將找到的結(jié)點變形
      timer=1;           //使找到的結(jié)點閃爍
   }
   ein->Text="";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{                                       //熟悉計數(shù)器的使用有助于動畫及效果的表現(xiàn)
   static int t=0;
   if(timer==1)
   {
      if(t%2==0)                       //鎖定結(jié)點使其閃爍
         sp[l]->Visible=false;
      else
         sp[l]->Visible=true;
      t++;
      if(t>20)                          //結(jié)束計數(shù)器并將形狀還原
      {
        timer=0;                          //還原搜尋結(jié)果變化
        sp[l]->Shape=stEllipse;
        t=0;
      }
   }
}
//---------------------------------------------------------------------------







?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国产福利在线| 轻轻草成人在线| 欧美久久免费观看| 久久99精品国产麻豆婷婷| 久久久久免费观看| 91国偷自产一区二区开放时间 | 日本怡春院一区二区| 久久久www成人免费无遮挡大片| 一本到不卡免费一区二区| 捆绑调教一区二区三区| 亚洲日本中文字幕区| 精品久久一二三区| 在线观看免费成人| 成人高清视频在线| 裸体在线国模精品偷拍| 亚洲制服丝袜在线| 中文字幕一区二| 精品国产乱码久久久久久夜甘婷婷| 在线一区二区三区| 日韩手机在线导航| 色94色欧美sute亚洲线路一久| 国产综合一区二区| 天天爽夜夜爽夜夜爽精品视频| 中文字幕在线免费不卡| 精品国产一区二区三区久久久蜜月| 在线观看免费视频综合| 成人美女视频在线观看18| 久久成人18免费观看| 五月天精品一区二区三区| 亚洲三级在线免费观看| 亚洲国产高清在线| 久久久久久久久一| 欧美mv日韩mv国产网站app| 欧美日韩精品一二三区| 在线一区二区三区做爰视频网站| 成+人+亚洲+综合天堂| 国产精品综合二区| 精油按摩中文字幕久久| 免费成人av资源网| 日产欧产美韩系列久久99| 亚洲一区二区av在线| 亚洲精品菠萝久久久久久久| 中文字幕一区二区三区不卡在线 | 自拍偷拍国产精品| 国产欧美一区二区在线| 久久人人爽爽爽人久久久| 欧美精品一区二区久久婷婷| 日韩一级高清毛片| 日韩西西人体444www| 91精品欧美福利在线观看| 欧美日韩一区三区四区| 欧美日韩三级一区二区| 欧美日韩免费一区二区三区| 亚洲精品免费在线播放| 亚洲区小说区图片区qvod| 亚洲欧美日韩国产成人精品影院 | 欧美亚一区二区| 欧美性一级生活| 欧美日韩视频一区二区| 欧美精品自拍偷拍| 欧美一区二区三区公司| 日韩免费视频一区| 久久香蕉国产线看观看99| 国产无一区二区| 国产精品美女一区二区三区| 亚洲欧洲无码一区二区三区| 亚洲美女区一区| 天天操天天干天天综合网| 日产精品久久久久久久性色| 精品亚洲porn| 成人精品视频.| 日本道色综合久久| 欧美剧情电影在线观看完整版免费励志电影 | 韩国三级电影一区二区| 国产成人综合网站| 91年精品国产| 欧美电影一区二区| 久久婷婷综合激情| 亚洲欧美自拍偷拍| 日韩不卡一区二区| 国产成人免费视频网站| 日本久久精品电影| 日韩免费视频一区| 国产精品成人一区二区艾草| 午夜精品福利久久久| 国产激情一区二区三区| 色菇凉天天综合网| 欧美v日韩v国产v| 亚洲特级片在线| 蜜臀va亚洲va欧美va天堂| 粉嫩av一区二区三区| 欧美视频在线一区二区三区| 久久综合国产精品| 亚洲青青青在线视频| 久久国产精品99久久人人澡| 99精品视频一区二区三区| 51午夜精品国产| 国产精品传媒在线| 美国毛片一区二区| 91视频观看视频| 精品盗摄一区二区三区| 夜夜亚洲天天久久| 国产电影一区在线| 欧美精品 日韩| 亚洲欧洲日韩一区二区三区| 麻豆极品一区二区三区| 色天天综合久久久久综合片| 久久综合五月天婷婷伊人| 亚洲第一福利一区| 国产99精品在线观看| 欧美一区二区视频在线观看2020| 国产精品成人免费| 国产伦精品一区二区三区在线观看| 在线国产亚洲欧美| 国产精品视频麻豆| 国产在线精品免费| 欧美一区二区在线看| 亚洲欧美电影院| 风间由美性色一区二区三区| 日韩亚洲欧美成人一区| 亚洲成人午夜电影| 色视频一区二区| 国产精品嫩草久久久久| 国产精品自在在线| 精品少妇一区二区三区在线视频| 亚洲午夜久久久久久久久久久 | 亚洲一区在线免费观看| 成人精品视频一区| 日本一区二区三区高清不卡| 九色|91porny| 日韩欧美激情四射| 日本欧美一区二区| 欧美精品一级二级三级| 亚洲一区在线观看免费观看电影高清| 成人久久视频在线观看| 久久久www成人免费无遮挡大片| 欧美aaaaaa午夜精品| 欧美日本在线视频| 亚洲国产日日夜夜| 欧美三级中文字| 一区二区三区色| 色婷婷综合久色| 亚洲激情一二三区| 欧美在线免费观看亚洲| 一区二区三区高清| 欧美性猛交xxxxxxxx| 亚洲韩国精品一区| 欧美三级韩国三级日本一级| 亚洲一区二区三区视频在线播放 | 日本在线不卡视频一二三区| 69久久夜色精品国产69蝌蚪网| 天天综合网 天天综合色| 欧美日韩精品系列| 视频在线在亚洲| 欧美一区二区在线免费播放 | 亚洲宅男天堂在线观看无病毒| 色欧美片视频在线观看| 一区av在线播放| 7777精品伊人久久久大香线蕉的 | 日本一区二区高清| 成人app网站| 一区二区视频在线看| 欧美日韩国产综合一区二区三区 | 欧美日韩国产色站一区二区三区| 婷婷开心激情综合| 日韩欧美美女一区二区三区| 狠狠色综合日日| 国产精品日韩成人| 91国偷自产一区二区开放时间| 性感美女极品91精品| 日韩欧美亚洲国产精品字幕久久久| 国产精品一色哟哟哟| 国产精品理论在线观看| 欧美色区777第一页| 精品一区二区三区香蕉蜜桃| 国产精品网站导航| 欧美日韩一区二区三区四区 | 国产精品午夜久久| 国产精品77777竹菊影视小说| 国产精品的网站| 欧美影院一区二区| 美女www一区二区| 国产亚洲一区二区三区在线观看| 国产成人啪免费观看软件| 久久久久国产精品厨房| 色婷婷久久久亚洲一区二区三区| 亚洲与欧洲av电影| 欧美一级电影网站| 99久久精品国产观看| 亚洲一区二区三区不卡国产欧美| 欧美三级一区二区| 视频一区视频二区中文字幕| 国产午夜精品久久久久久久| 成人国产精品免费| 亚洲国产日韩综合久久精品| 国产性色一区二区| 91老师国产黑色丝袜在线| 日日噜噜夜夜狠狠视频欧美人 | 色偷偷88欧美精品久久久| 精品一区二区日韩|