freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

實驗四-平衡二叉樹演示-全文預(yù)覽

2025-08-26 04:14 上一頁面

下一頁面
  

【正文】 字(會將后者合并到前者):endl。 break。 PrintTreeStructure(st)。()39。 system(pause)。 char name[NAME_LENGTH]。 } case 39。 } cout刪除成功!endl。mn。 cinn。 system(cls)。 cinname。439。 system(pause)。m++){ cin。 cout請依次輸入插入元素endl。 break。 Link s。:{ system(cls)。 system(cls)。 cin。 break。 Link s。:{ system(cls)。 system(cls)。//增高標(biāo)識,1為增高,0為不增高 InsertTree(t,e,taller)。 for(m=0。 cinn。 char name[NAME_LENGTH]。 cink。139。 if(a==39。\n39。 cout endl。 cout endl。 InitL(l)。j10*NAME_LENGTH。 return 1。 )。 )。int MergeTree(AVLamp。 )。 )。 )。int EnQ(LinkQamp。 )。 ,char* )。/*雙向鏈表操作函數(shù)聲明*/int InitL(Linkamp。/*雙向鏈表結(jié)構(gòu)聲明*/typedef struct LNode{//鏈表 AVL t。}QNode,*QP。//結(jié)點數(shù)據(jù) struct AVLTree* lchild,* rchild。define NAME_LENGTH 20define LH 1 //樹的左部比右部高1define EH 0 //樹的左右一般高define RH 1 //樹的右部比左部高1typedef struct Type{//數(shù)據(jù)類型結(jié)構(gòu) float num。 } else{cout* 。//若該點為空,則它的孩子也為空,入隊列 EnQ(q,NULL)。 } if(tlchild==NULLamp。 } if(t!=NULL){ coutt(tbf) 。 num=0。} int i=0,level=0,j,num。 InsertTree(t1,t2data,taller)。 } } } return 1。 break。 LeftBalance(t)。//右平衡處理 break。 break。 shorter=1。 RightBalance(t)。 shorter=0。即查找q的值 if(shorter){ switch(tbf){ case LH: tbf=EH。 while(qrchild){//找到要刪除結(jié)點t的左孩子的最右孩子q q=qrchild。 t=tlchild。 t=trchild。 t,Type e,intamp。 trchild=rlchild。 t=l。 t){//以T為根節(jié)點的二叉排序樹進(jìn)行右旋轉(zhuǎn) AVL l。 } rlbf=EH。 break。 switch(rlbf){ case LH: tbf=EH。 rbf=LH。 switch(rbf){ case RH://新節(jié)點插在T的右孩子的右子樹上,要做單左旋處理 tbf=rbf=EH。 R_Rotate(t)。 lbf=LH。 break。 break。 break。 t){//左部平衡化處理 AVL l,lr。要求輸入數(shù)量數(shù)據(jù)時,必須輸入小于32767的正整數(shù)。然而遞歸調(diào)用的過程卻是非常復(fù)雜不容易理解的,稍不留神就有可能出現(xiàn)錯誤的調(diào)用,由于是層層遞歸,所以對函數(shù)運行情況的跟蹤并不容易,十分容易出現(xiàn)錯誤。經(jīng)過不斷的調(diào)試和改進(jìn),對這部分代碼添加if判斷,來區(qū)分各種不同的情形,進(jìn)行不同的平衡因子調(diào)節(jié)和平衡化操作,從而解決了這一問題,通過目前測試來看,程序?qū)τ诟鞣N數(shù)據(jù)都有很好的穩(wěn)定性。 } } DeQ(q,t)。amp。trchild==NULL){//T為空時進(jìn)行判斷,當(dāng)平衡樹中出現(xiàn)層數(shù)不同的空結(jié)點時,終止輸出 if(!level){//首次出現(xiàn)兩個孩子都空的結(jié)點,將其孩子的層數(shù)賦給level level=num+1。//將左右孩子入隊列 EnQ(q,trchild)。 while(j=i){ num++。}//樹不存在,返回 InitQ(q)。 t2){//將樹t2合并到t1上 while(t2!=NULL){//t2不為空時 InsertTree(t1,t2data,taller)。break。shorter=0。 else shorter=1。 RightBalance(t)。shorter=0。 } if(shorter){ switch(tbf){ case LH:tbf=EH。 else shorter=1。 case EH:tbf=RH。//在左子樹中遞歸刪除前驅(qū)結(jié)點。 } else{//左右子樹都存在 q=tlchild。 if(tlchild==NULL){//左子樹為空將右子樹接上,刪除該點。}(5)int DeleteTree(AVLamp。 t){//以T為根節(jié)點的二叉排序樹進(jìn)行左旋轉(zhuǎn) r=trchild。//將t的左孩子給l tlchild=lrchild。 R_Rotate(trchild)。break。 case LH://新節(jié)點插在T的右孩子的左子樹上,要做雙旋處理 rl=rlchild。break。 }}(2)void RightBalance(AVLamp。break。break。R_Rotate(t)。 switch(lbf){ //檢查T的左子樹平衡度,并作相應(yīng)的平衡處理 case LH://新節(jié)點插入在T的左孩子的左子樹上,做單右旋處理 調(diào)整平衡因子。 struct LNode* prior,* next。 QP rear。/*隊列結(jié)構(gòu)聲明*/typedef struct QNode{//隊列 AVL tree。/*平衡樹結(jié)構(gòu)聲明*/typedef struct AVLTree{//二叉平衡樹結(jié)構(gòu)體聲明 int bf。通過平衡二叉樹,能夠使樹時刻保持平衡,從而提高在樹中遍歷數(shù)據(jù)的速度,具有重要意義。3)可以考慮兩棵平衡二叉樹的合并。實驗四 平衡二叉樹演示1. 問題定義及需求分析問題描述:利用平衡二叉樹設(shè)計動態(tài)查找表。2)完成平衡二叉樹的創(chuàng)建、查找、插入和刪除的演示操作。創(chuàng)建平衡二叉樹存儲結(jié)構(gòu),通過平衡因子,使二叉排序樹達(dá)到平衡,提供平衡二叉樹的創(chuàng)建、查找和刪除,樹中元素的查找、插入和刪除等基本功能,可以實現(xiàn)創(chuàng)建多棵平衡二叉樹,并且能夠進(jìn)行兩棵樹的合并。}Type。//左右孩子}AVLTree,*AVL。typedef struct{ QP fron。 char tree_name[NAME_LENGTH]。 t){//左部平衡化處理 l=tlchild。 case EH://deleteAVL需要,insertAVL用不著 調(diào)整平衡因子。 switch(lrbf){ case LH: 調(diào)整平衡因子。 case RH: 調(diào)整平衡因子。 R_Rotate(t)。L_Rotate(t)。break。 case EH: 調(diào)整平衡因子。 } 調(diào)整平衡因子。 t){//以T為根節(jié)點的二叉排序樹進(jìn)行右旋轉(zhuǎn) l=tlchild。//指向新的節(jié)點l}(4)void L_Rotate(AVLamp。 t=r。//刪除失敗 } else if(e==tdata){//找到元素結(jié)點 q=NULL。 shorter=1。//把q的值給t DeleteTree(tlchild,qdata,shorter)。break。 case RH: if(trchildbf==EH) shorter=0。 } } } } else if(etdata){//左子樹中繼續(xù)查找 if(!DeleteTree(tlchild,e,shorter)){ return 0。 case EH:tbf=RH。 else shorter=1。 } if(shorter){ switch(tbf){ case LH: if(tlchildbf==EH) shorter=0。 case EH:tbf=LH。shorter=1。 t1,AVLamp。}(7) const int PrintTreeStructure(AVL t){//利用層次遍歷,輸出樹的形狀 if(!t){return 0。 j=1。 EnQ(q,tlchild)。amp。 if(levelamp。}//用*代表空 if(j==i+1){ coutendl。在調(diào)試過程中經(jīng)常出現(xiàn)平衡因子數(shù)值不對的問題,經(jīng)過仔細(xì)檢查,發(fā)現(xiàn)是某些部分的代碼不能適用于全部的可能情形,當(dāng)一種新情形出現(xiàn)時,就會產(chǎn)生錯誤。遞歸調(diào)用對于平衡樹的平衡調(diào)節(jié)具有非常重要的作用,這大大減少了代碼量,并且使得代碼更加簡潔。對菜單進(jìn)行操作時,輸入數(shù)據(jù)長度必須在200以內(nèi),且有效的輸入數(shù)據(jù)為0至7,其中0為退出程序,1至7為對應(yīng)菜單的操作選項。6. 測試結(jié)果(截屏)(1) 原樹t2的結(jié)構(gòu)圖:(2) t2刪除結(jié)點7后,層次遍歷輸出樹的結(jié)構(gòu)圖:(3) 樹t1的結(jié)構(gòu)圖:
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1