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,...