大数医达面试题
測試題
1、用任意一種編程語言定義一個class或struct來表示二叉樹。
備注:可以不寫構造函數和對象初始化的代碼,僅定義出class或struct的成員變量即可。其中節點的值用int或char類型即可。
?2、寫一個函數實現二叉樹的先序遍歷,輸入參數是剛才定義的這個二叉樹。
備注: 函數不需要有返回值,只要能print出來節點的值即可。
3、寫一個函數實現二叉樹的廣度優先遍歷。
備注:如需用到復雜數據結構,如隊列、棧、hashmap等,可假設標準庫已存在,可直接使用不需要單獨實現。
?
?
背景知識:
1.什么是二叉樹?
二叉樹是每個結點最多有兩個子樹的樹結構。
通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。
2.什么是二叉樹的先序遍歷?
先序遍歷也叫做先根遍歷、前序遍歷,可記做根左右(二叉樹父結點向下先左后右)。
首先訪問根結點然后遍歷左子樹,最后遍歷右子樹。在遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹,如果二叉樹為空則返回。
例如,下圖所示二叉樹的遍歷結果是:ABDECF
3.什么是二叉樹的廣度優先遍歷?
廣度優先遍歷對于二叉樹來說可以認為是按層遍歷,其中根節點為第1層,根節點的子節點為第2層,以此類推。廣度優先遍歷的順序就是從第1層到最后一層的順序遍歷,每一層內部從左到右遍歷。
例如對于上圖的廣度優先遍歷順序為 A B C D E F
轉載于:https://www.cnblogs.com/wqbin/p/11190908.html
總結
- 上一篇: mysql事务隔离级别与设置
- 下一篇: 由注释引起的问题