二叉樹數(shù)據(jù)結(jié)構(gòu)課程設(shè)計.doc
《二叉樹數(shù)據(jù)結(jié)構(gòu)課程設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《二叉樹數(shù)據(jù)結(jié)構(gòu)課程設(shè)計.doc(16頁珍藏版)》請在匯文網(wǎng)上搜索。
1、目 錄第一章 需求分析11.1課程設(shè)計題目11.2 課程設(shè)計任務(wù)及要求11.21 課程設(shè)計目的11.22 設(shè)計要求11.3課程設(shè)計思想21.4 軟件運行環(huán)境及開發(fā)工具2第二章概要設(shè)計32.1 數(shù)據(jù)結(jié)構(gòu)32.2 所用方法及其原理說明3第三章 詳細設(shè)計43.1 詳細設(shè)計方案43.2 模塊設(shè)計43.21 二叉樹定義43.22 樹狀顯示二叉樹設(shè)計73.22 主函數(shù)設(shè)計10第四章 調(diào)試和操作說明114.1 調(diào)試114.2 操作說明12第五章 總結(jié)與體會125.1 本文的主要工作125.2 存在問題125.3 心得體會12致 謝13參考文獻14第一章 需求分析1.1課程設(shè)計題目樹狀顯示二叉樹:編寫函數(shù)di
2、splaytree(二叉樹的根指針,數(shù)據(jù)值寬度,屏幕的寬度)輸出樹的直觀示意圖。輸出的二叉樹是垂直打印的,同層的節(jié)點在同一行上。問題描述 假設(shè)數(shù)據(jù)寬度datawidth=2,而屏幕寬度screenwidth為64=26,假設(shè)節(jié)點的輸出位置用(層號,須打印的空格數(shù))來界定。第0層:根在(0,32)處輸出;第1層:因為根節(jié)點縮進了32個空格,所以下一層的偏移量(offset)為32/2=16=screenwidth/22。即第一層的兩個節(jié)點的位置為(1,32-offset),(1,32+offset)即(1,16),(1,48)。第二層:第二層的偏移量offset為screenwidth/23。第
3、二層的四個節(jié)點的位置 分別是(2,16-offset),(2,16+offset),(2,48-offset),(2,48+offset)即(2,8),(2,24),(2,40),(2,56)。第i層:第i層的偏移量offset為screenwidth/2i+1。第i層的每個節(jié)點的位置是訪問第i-1層其雙親節(jié)點時確定的。假設(shè)其雙親的位置為(i-1,parentpos)。若其第i層的節(jié)點是其左孩子,那末左孩子的位置是(i,parentpos-offset),右孩子的位置是(i,parentpos+offset)。實現(xiàn)提示 利用二叉樹的層次遍歷算法實現(xiàn)。利用兩個隊列Q,QI。隊列Q中存放節(jié)點信息,
4、隊列QI中存相應(yīng)于隊列Q中的節(jié)點的位置信息,包括層號和需要打印節(jié)點值時需要打印的空格數(shù)。當節(jié)點被加入到Q時,相應(yīng)的打印信息被存到QI中。二叉樹本身采用二叉鏈表存儲。1.2 課程設(shè)計任務(wù)及要求1.21 課程設(shè)計目的據(jù)結(jié)構(gòu)是計算機專業(yè)的核心課程,是一門實踐性很強的課程。課程設(shè)計是加強學生實踐能力的一個強有力手段,要求學生掌握數(shù)據(jù)結(jié)構(gòu)的應(yīng)用、算法的編寫、類C語言的算法轉(zhuǎn)換成C(C+)程序并上機調(diào)試的基本方法,還要求學生在完成程序設(shè)計的同時能夠?qū)懗霰容^規(guī)范的設(shè)計報告。嚴格實施課程設(shè)計這一環(huán)節(jié),對于學生基本程序設(shè)計素養(yǎng)的培養(yǎng)和軟件工作者工作作風的訓練,將起到顯著的促進作用。1.22 設(shè)計要求1、課程設(shè)計
5、題目每組一題,每個學生必須獨立完成;2、課程設(shè)計時間為2周;3、設(shè)計語言C(C+)不限;4、上機任務(wù)1)選擇合適的數(shù)據(jù)結(jié)構(gòu),并定義數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)體;2)根據(jù)程序所要完成的基本要求,設(shè)計出完整的算法;3)設(shè)計出主程序(main函數(shù)),使其成為完整的程序。 6、上機時間:按照實驗室上機時間安排計劃執(zhí)行 7、無論在校外、校內(nèi),都要嚴格遵守學校和所在單位的學習和勞動紀律、規(guī)章制度,學生有事離校必須請假。課程設(shè)計期間,無故缺席按曠課處理;缺席時間達四分之一以上者,其成績按不及格處理。1.3課程設(shè)計思想二叉樹是一種樹形結(jié)構(gòu),它的特點是每個結(jié)點至多有兩棵子樹,即二叉樹中不存在度大于2的結(jié)點,并且二叉樹的子樹
6、有左右之分,其次序不能任意顛倒。本設(shè)計主要根據(jù)二叉樹的性質(zhì)原理為設(shè)計的主體思路,二叉樹的性質(zhì)如下:性質(zhì)1:在二叉樹的第i層上至多有2i-1個結(jié)點(i=1);性質(zhì)2:深度為K的二叉樹至多有2k-1個結(jié)點(K=1);性質(zhì)3:如果一棵有n各結(jié)點的完全二叉樹的結(jié)點按層次編號,則對任一結(jié)點i(1=in,則結(jié)點無左孩子,否則其左孩子是結(jié)點2i;(2)若2i+1n,則結(jié)點i無右孩子,否則其右孩子為2i+1;另外,本設(shè)計利用二叉樹的廣度優(yōu)先搜索算法實現(xiàn)。利用兩個隊列Q,QI。隊列Q中存放節(jié)點信息,隊列QI中存相應(yīng)于隊列Q中的節(jié)點的位置信息,包括層號和需要打印節(jié)點值時需要打印的空格數(shù)。當節(jié)點被加入到Q時,相應(yīng)的
7、打印信息被存到QI中。二叉樹本身采用二叉鏈表存儲。本設(shè)計應(yīng)用了C語言中的類來自定義頭文件,將任務(wù)分成多個的模塊,增強了可讀性和簡單性,同時為日后的編寫,調(diào)試,維護提供了極大地方便。1.4 軟件運行環(huán)境及開發(fā)工具本設(shè)計用到的軟件是Microsoft Visual C+ 6.0程序開發(fā)軟件,Microsoft Visual C+ 6.0是20世紀90年代中期由美國微軟公司推出的一個強大的Windows應(yīng)用程序開發(fā)平臺,是“真正的程序員”首選的開發(fā)工具之一,也是有志于程序設(shè)計的程序員、大中專院校學生進入高級程序設(shè)計領(lǐng)域的首選軟件之一。Microsoft Visual C+ 6.0程序開發(fā)軟件提供了一
- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
15 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 二叉 數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計