版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
過(guò)程控制軟件技術(shù)基礎(chǔ)課程實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目:二叉樹的建立和遍歷姓名:戚風(fēng)亮學(xué)號(hào):1008180230指導(dǎo)教師:任登鳳1.實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)自主設(shè)計(jì)實(shí)驗(yàn),掌握過(guò)程控制軟件的基礎(chǔ)理論知識(shí),本實(shí)驗(yàn)具體表現(xiàn)為二叉樹的建立和遍歷,為以后計(jì)算機(jī)控制的軟件設(shè)計(jì)提供基礎(chǔ)。提高邏輯思維方式,培養(yǎng)應(yīng)用可視化編程工具開發(fā)計(jì)算機(jī)軟件的能力。2.實(shí)驗(yàn)內(nèi)容本文主要介紹二叉樹的建立和遍歷。所使用的編程軟件為matlab2010版本,主要使用其中的GUI功能,完成可視化界面操作。從更直接的角度感受二叉樹的建立和遍歷。二叉樹的建立和遍歷包含兩個(gè)方面:建立和遍歷。其中建立包括輸入二叉樹的每一個(gè)結(jié)點(diǎn)的元素,以及二叉樹每一個(gè)結(jié)點(diǎn)的隨機(jī)存儲(chǔ)地址。與此同時(shí),更重要的是創(chuàng)建兩個(gè)指針域:左指針域L和右指針域R,在本次實(shí)驗(yàn)中,采用產(chǎn)生隨機(jī)數(shù)的方式生成隨機(jī)存儲(chǔ)地址,采用兩個(gè)數(shù)組代表兩個(gè)指針域。二叉樹的遍歷采用遞歸函數(shù)的方式,本實(shí)驗(yàn)中采用三個(gè)函數(shù)Front,Middle,Behind分別實(shí)現(xiàn)前序、中序以及后序的功能。(1)界面的設(shè)計(jì):軟件的設(shè)計(jì)界面見圖1。圖1軟件的總體界面界面中主要包括以下幾個(gè)部分:a.深度m的輸入框:此輸入框在輸入某個(gè)數(shù)值后將決定二叉樹的深度,值得注意的是:本次實(shí)驗(yàn)中的設(shè)計(jì)標(biāo)準(zhǔn)為4層,即最大為4層。當(dāng)輸入數(shù)值大于4時(shí),將提示出錯(cuò)(見圖2),并要求重新輸入。圖2.出錯(cuò)消息提醒框同時(shí),當(dāng)輸入層數(shù)小于4時(shí),軟件將自動(dòng)消去最后的那幾層結(jié)點(diǎn)。(見圖3)圖3.軟件自動(dòng)按要求生成二叉樹層數(shù)b.二叉樹結(jié)點(diǎn)元素輸入框:二叉樹結(jié)點(diǎn)元素輸入框用于輸入每個(gè)結(jié)點(diǎn)的元素值,同時(shí)按照二叉樹的規(guī)則,每一個(gè)根結(jié)點(diǎn)對(duì)應(yīng)至少兩個(gè)子結(jié)點(diǎn),即如果根結(jié)點(diǎn)的值為空(沒有值),則它的子結(jié)點(diǎn)輸入框不得輸入,即其enabled屬性為false(背景色為灰色,見圖3)。當(dāng)根結(jié)點(diǎn)輸入值后,子結(jié)點(diǎn)輸入框即可輸入(見圖4)。與此同時(shí),由于matlab的GUI中,沒有向VB中的line控件,所以必須用代碼加以實(shí)現(xiàn),在matlab中,函數(shù)annotation可以用來(lái)畫箭頭,具體如下:arr(1,1)=annotation(gcf,'arrow',[0.50.35],[0.80.75]);其中,后面的兩組數(shù)據(jù)為坐標(biāo)值,arr(1,1)表示第一排的第一個(gè)箭頭,在matlab中的每個(gè)圖象都對(duì)應(yīng)一個(gè)句柄值,這樣,所有箭頭都對(duì)應(yīng)各自的句柄值,進(jìn)而形成一個(gè)所有箭頭的數(shù)組,便于管理每一個(gè)圖像。圖4.根結(jié)點(diǎn)輸入后子結(jié)點(diǎn)方可輸入c.控制按鈕:生成二叉樹生成二叉樹的主要功能是,將沒有輸入值的結(jié)點(diǎn)以及箭頭隱藏,同時(shí)為每一個(gè)結(jié)點(diǎn)分配隨機(jī)的存儲(chǔ)地址(見圖5),進(jìn)而形成左右指針域。圖5.最終形成的二叉樹如圖5所示,在每個(gè)結(jié)點(diǎn)的左邊有一個(gè)數(shù)字,即代表該結(jié)點(diǎn)在內(nèi)存中的隨機(jī)地址。該數(shù)字由matlab內(nèi)部函數(shù)randperm產(chǎn)生。如:data=randperm(5)即產(chǎn)生1——5的5個(gè)隨機(jī)數(shù)(各不相同),并賦值給數(shù)組data。本次實(shí)驗(yàn)中,最關(guān)鍵的是左右指針域的建立,即左右數(shù)組的建立。為實(shí)現(xiàn)這個(gè)功能,創(chuàng)建函數(shù)[L,R,VV]=point。其中L表示左指針域,R代表右指針域,VV代表值域。至此,二叉樹已完全建立。d.重置按鈕:將界面設(shè)置為初始狀態(tài)e.退出按鈕:退出系統(tǒng)f.前序按鈕:生成二叉樹的前序遍歷。(中序按鈕、后序按鈕依次類推)3.軟件總體結(jié)構(gòu)、程序流程圖軟件總體結(jié)構(gòu):(1)軟件界面總體上有三個(gè)部分:輸入界面二叉樹總體結(jié)構(gòu)控制界面二叉樹最終形成結(jié)果界面二叉樹遍歷顯示(2)軟件程序總體上有以下幾個(gè)方面:a.名為gouzao的函數(shù):該函數(shù)輸入?yún)?shù)為輸入框的坐標(biāo)(x,y),返回該輸入框的特點(diǎn)。即只有該輸入框存在值時(shí),它對(duì)應(yīng)的子結(jié)點(diǎn)輸入框方可輸入。這里所謂的存在值的相反面是“非空”,而并非“空字符串”。b.名為point的函數(shù):該函數(shù)沒有輸入?yún)?shù),但可以返回左指針域、右指針域以及值域。其調(diào)用格式為[L,R,VV]=point。c.名為Front、Middle、Behind的函數(shù):這三個(gè)函數(shù)分別返回前序遍歷、中序遍歷、后序遍歷的結(jié)果。d.名為Erchashu的函數(shù):該函數(shù)為matlab的GUI中系統(tǒng)自動(dòng)生成的m文件格式的函數(shù)。它是整個(gè)系統(tǒng)的中樞,整合了以上的所有函數(shù)。程序流程圖:圖6.程序流程圖4.實(shí)驗(yàn)中遇到的問(wèn)題及解決方法本次實(shí)驗(yàn)中主要有以下兩個(gè):(1)在設(shè)置每個(gè)結(jié)點(diǎn)的回調(diào)函數(shù)時(shí),應(yīng)首先判斷根結(jié)點(diǎn)是否為控制,所謂控制并非“‘’”,即無(wú)法用string=“”判斷,而是利用empty判斷。這樣防止根結(jié)點(diǎn)在輸入后又刪除之后產(chǎn)生的不符合規(guī)定的結(jié)果。(2)遞歸函數(shù)的建立:在matlab中,函數(shù)的參數(shù)值無(wú)法實(shí)現(xiàn)按地址傳遞,只能按值傳遞,這就意味著遞歸函數(shù)不能像VB中那樣地建立。為此,在每一次回調(diào)函數(shù)時(shí),必須先將必要的參數(shù)寄存在一個(gè)變量中,本實(shí)驗(yàn)中利用句柄的“userdata”屬性,將值儲(chǔ)存在變量中,在利用時(shí),再將變量值取出。本實(shí)驗(yàn)中使用了寫文件方式,將數(shù)據(jù)先寫入外部文件中
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 購(gòu)房花式促銷活動(dòng)策劃方案
- 2025重慶大學(xué)能源與動(dòng)力工程學(xué)院勞務(wù)派遣實(shí)驗(yàn)室秘書招聘1人參考考試題庫(kù)及答案解析
- 深度解析(2026)《GBT 25906.3-2010信息技術(shù) 通 用多八位編碼字符集 錫伯文、滿文名義字符、顯現(xiàn)字符與合體字 48點(diǎn)陣字型 第3部分:大黑體》
- 深度解析(2026)《GBT 25904.2-2010信息技術(shù) 通 用多八位編碼字符集 錫伯文、滿文名義字符、顯現(xiàn)字符與合體字 24點(diǎn)陣字型 第2部分:行書體》
- 深度解析(2026)《GBT 25938-2010煉膠工序中小料自動(dòng)配料稱量系統(tǒng)》(2026年)深度解析
- 2026年河北滄州市人民醫(yī)院選聘高層次人才49名備考筆試題庫(kù)及答案解析
- 深度解析(2026)《GBT 25745-2010鑄造鋁合金熱處理》(2026年)深度解析
- 深度解析(2026)《GBT 25699-2010帶式橫流顆粒飼料干燥機(jī)》(2026年)深度解析
- 2025吉林長(zhǎng)春市德惠市大學(xué)生鄉(xiāng)村醫(yī)生專項(xiàng)計(jì)劃招聘2人(1號(hào))備考筆試試題及答案解析
- 古代“閨怨詩(shī)”中性別情感經(jīng)濟(jì)與倫理規(guī)范
- 二十屆四中全會(huì)測(cè)試題及參考答案
- 第十二講 建設(shè)社會(huì)主義生態(tài)文明PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 國(guó)開2023年春《組織行為學(xué)》機(jī)考網(wǎng)考期末復(fù)習(xí)資料參考答案
- 肝血管瘤患者的護(hù)理查房
- 二次結(jié)構(gòu)電氣配管及預(yù)埋技術(shù)交底
- 電氣安裝工程監(jiān)理控制要點(diǎn)
- 商場(chǎng)超市安全生產(chǎn)標(biāo)準(zhǔn)化管理體系方案資料匯編(2022-2023新標(biāo)準(zhǔn)實(shí)施模板)
- 沈陽(yáng)市義務(wù)教育學(xué)校教學(xué)常規(guī)管理實(shí)施細(xì)則
- 化學(xué)突發(fā)中毒事件現(xiàn)狀及應(yīng)急處理課件
- YC/T 559-2018煙草特征性成分生物堿的測(cè)定氣相色譜-質(zhì)譜聯(lián)用法和氣相色譜-串聯(lián)質(zhì)譜法
- GB/T 4458.6-2002機(jī)械制圖圖樣畫法剖視圖和斷面圖
評(píng)論
0/150
提交評(píng)論