樹的總結(二) 非空二叉樹的高度和寬度

2021-09-29 17:17:48 字數 1410 閱讀 7272

int btdepth(btnode *t)

} return level;

}

int getdepth(btnode *t)

}

int btwidth(btnode *t)

if(p->rchild!=null) //右孩子入隊

}//while

max=0;i=0; //max儲存同一層最多的結點個數

k=1;

while(imax)

max=n;

} return max;

}

#include#include#define maxsize 100

typedef struct btnode

btnode;

typedef struct

que;

//二叉排序樹的插入

int insert_bst(btnode *&t,int key)

else

} void visit (btnode *p)

//建立二叉排序樹

int create_bst(btnode *&t,int arry,int n) }

//非遞迴求二叉樹的高度

/*採用層次遍歷的演算法,設定變數level記錄當前結點所在的層數,設定變數last指向當前層的最右結點,

每次層次遍歷出隊時和last指標比較,若兩者相等,則層數加1,並讓last指向下一層的最右結點,直到遍歷完成*/

int btdepth(btnode *t)

} return level;}

//求非空二叉樹的寬度

int btwidth(btnode *t)

if(p->rchild!=null) //右孩子入隊

}//while

max=0;i=0; //max儲存同一層最多的結點個數

k=1;

while(imax)

max=n;

} return max;

} int main()

; create_bst(t,arry,10);

int depth=getdepth(t);

printf("遞迴二叉樹的高度:%d\n",depth);

int level=btdepth(t);

printf("非遞迴二叉樹的高度:%d\n",level);

int width=btwidth(t);

printf("二叉樹的最大的寬度:%d\n",width);

二叉樹 48 二叉樹 二叉樹的高度

目的 使用c 模板設計並逐步完善二叉樹的抽象資料型別 adt 內容 1 請參照鍊錶的adt模板,設計二叉樹並逐步完善的抽象資料型別。由於該環境目前僅支援單檔案的編譯,故將所有內容都集中在乙個原始檔內。在實際的設計中,推薦將抽象類及對應的派生類分別放在單獨的標頭檔案中。參考教材 課件,以及網盤中的鍊錶...

1370 高度平衡的二叉樹(二叉樹)

題目描述 給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。一棵高度平衡二叉樹定義為 乙個二叉樹每個節點的左右兩個子樹的高度差的絕對值不超過1。輸入 輸入一行,按照先序輸入一棵二叉樹,其中空節點用 1 表示。輸出 若是則輸出yes,否則輸出no。樣例輸入 1 2 1 1 3 4 1 1 1樣例輸出 ye...

二叉樹的高度 110 平衡二叉樹

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹 每個節點 的左右兩個子樹的高度差的絕對值不超過 1 示例 1 輸入 root 3,9,20,null,null,15,7 輸出 true 示例 2 輸入 root 1,2,2,3,3,null,null,4,...