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