




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、二叉樹層序遍歷微軟面試題,難度系數(shù)低,題目描述如下:輸入一顆二元樹,從上往下按層打印樹的每個結(jié)點,同一層中按照從左往右 的順序打印。例如輸入86 105 7 9 11輸出 8 6 10 5 7 9 11.邏輯分析:1、顯然就是二叉樹的層序遍歷,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程的時候,多數(shù)人都對 先序,中序,后序遍歷感到熟悉,這三種都屬于深度搜索,而層序遍歷則是廣度 搜索。盡管如此,微軟以此為面試題目,還是相當(dāng)便宜面試者。2、對于層序遍歷,類似先序遍歷的想法,我們知道,先序遍歷的循環(huán)實現(xiàn) 需要借助輔助棧來實現(xiàn),棧是一種LIF0的數(shù)據(jù)結(jié)構(gòu),即后進先出,last in first out,那么,對于層序遍歷來說,
2、過程剛好相反,即FIFO, first in first out, 我們每次將根節(jié)點入隊列,當(dāng)隊列非空,則將front賦給臨時指針temp,繼而輸 出根節(jié)點的衛(wèi)星域,接下來判斷根節(jié)點左右孩子是否為空,非空則入隊列,上述 工作以后,再度從隊列中取元素,隊列空,則循環(huán)結(jié)束。void printByLevel (BSTreeNode* root)queueBSTREENODE* Q;BSTreeNode* p = root;if (p 二二 NULL)return ;Q. push (p);while ( ! Q. empty ()p = Q front ();Q. pop ();cout p-m_
3、nValue endl;if (p-m_pLeft)Q.push (p-m_pLeft);if (p-m_pRight)Q.push (p-m_pRight);3、因為之前做的是BSTree的鏡像翻轉(zhuǎn)例子,這里為了方便,不再改寫為 BTree,畢竟二叉排序樹也是二叉樹的一種。完整代碼如下:include IOSTREAMinclude using namespace std;typedef struct BSTreeNode/a node in the BSTintm_nValue;/Vaiue of nodestruct BSTreeNode *m_pLeft;/left child of
4、node/right child of nodestruct BSTreeNode *m_pRight;/right child of node;BSTreeNode;void printByLevel (BSTreeNode* root)queueBSTREENODE* Q;BSTreeNode* p 二 root;if (p 二二 NULL)return ;Q push (p);while ( ! Q. empty ()p = Q front ();Q. pop ();cout p-m_nValue endl;if (p-m_pLeft)Qpush (p-m_pLeft);if (p-m_
5、pRight)Qpush (p-m_pRight);int main ()BSTreeNode node 7;node0m_nValue 二 8;nodeL0m_pLeft 二 &nodel;node L0m_pRight 二 &node2;node L1m_nValue 二 6;node L1m_pLeft 二 &node3;node L1m_pRight 二 &node4;node2m_nValue 二 10;node2m_pLeft 二 &node5;node2m_pRight 二 &node6;node3m_nValue 二 5;node3m_pLeft 二 NULL;node3m_pRight 二 NULL;node4 m_nValue 二 7;node4m_pLeft 二 NULL;node4. m_pRight 二 NULL;node5m_nValue 二 9;node5m_pLeft 二 NULL;node5m_pRight 二 NULL;node6m_nValue 二 11:node6m_pLeft
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 試用期提前轉(zhuǎn)正了合同5篇
- 項目資金預(yù)算表-項目資金籌措與預(yù)算
- 建筑工程合同種類
- 2025年淮南資格證模擬考試
- 2025年江西貨運從業(yè)資格證考試題答案解析大全
- 云服務(wù)器托管服務(wù)及支持合同
- 個人酒店承包經(jīng)營合同8篇
- 上海員工的勞動合同范本5篇
- 課題申報書參考文獻格式
- 中國電建合同范本
- 學(xué)技能如何打逃生繩結(jié)固定繩結(jié)
- 自驅(qū)型成長:如何培養(yǎng)孩子的自律力
- 特殊教育:康復(fù)訓(xùn)練課程標(biāo)準(zhǔn)(年版)
- DCMM理論知識考試試題及答案
- 談心談話記錄100條范文(6篇)
- 中學(xué)生心理輔導(dǎo)-第一章-緒論
- 工業(yè)品買賣合同(樣表)
- 《教育學(xué)原理》馬工程教材第二章教育與社會發(fā)展
- 《常見疾病康復(fù)》期中考試試卷含答案
- 地球使用者地樸門設(shè)計手冊
- 歐洲電力市場深度報告:歐洲電力市場供需格局和電價分析
評論
0/150
提交評論