實驗報告
課程名稱: 程式設計與資料結構指導老師: ljq 成績
實驗名稱:基於二叉樹結構的表示式求值演算法實驗型別: 上機同組學生姓名
一、實驗目的和要求(必填)
三、**缺陷及修正記錄
五、討論、心得
二、實驗內容和**(必填)
四、實驗結果與分析(必填)
一、實驗目的和要求
1. 掌握程式設計工具的使用
2. 掌握二叉樹資料結構在計算機上的實現
3. 掌握通過計算機程式設計解決問題的基本方法
二、實驗內容和**
1.實驗內容:
● 程式設計實現基於二叉樹結構的表示式求值演算法
● 表示式包含加減乘除四則運算以及至少一層括弧運算
● 首先將輸入的原表示式轉換成二叉樹結構,然後採用二叉樹的後序遞迴遍歷方法求得表示式的值
● 將所有實驗內容合併到乙個工程,增加互動操作和迴圈處理(持續)
2.**
1.標頭檔案
2.原始檔
3、**缺陷及修正記錄
略4、實驗結果與分析
二叉樹結構的表示式求值演算法
(1.09*(21-6)/4.5-9.8)+(44-9.8*2)-(5-(4+9)/2)
從上述執行結果來看符合題設,本程式能夠實現預定功能。
1) 從第一次範例表示式測試結果來看,本程式能夠實現簡單的四則運算和至少一層括弧運算
2) 從第二次壓力測試的執行結果來看,本程式的容錯性較好,能夠實現多層括弧運算及浮點數科**算
(1.09*(21-6)/4.5-9.8)+(44-9.8*2)-(5-(4+9)/2)=19.7333
五、討論、心得
通過本次實驗,我對於c語言以及資料結構中的二叉樹有了更深刻的了解,提高了程式編寫的熟練度,鞏固了書本知識,對於程式模組化觀念變得更加清晰。
本次實驗程式採用了波蘭式,先序遞迴建立二叉樹,分別先序,中序,後序遍歷二叉樹,最後後序遞迴求解表示式。
實驗程式中對於表示式的完善合法性審查是實際應用中的乙個亮點,同樣也是程式實驗除錯中的雞肋——
● if (*ppppp表示式首*p不合法;
printf("表示式輸入錯誤!\n");return 0; }
◆ if (!(*(p + len - 1p + len - 1) >= '0'&&*(p + len - 1) <= '9'))
//不為右括弧或數字,則表示式尾*(p + len - 1)不合法;
printf("表示式輸入錯誤!\n");return 0; }
● if (len == 1) //此時只有表示式為數字,表示式才合法
◆ if (len == 2) //此時只有表示式為正數或負數,表示式才合法
● if (*(p + i小數點前面必須為數字,表示式才合法
if (!(*(p + i - 1) >= '0'&&*(p + i - 1) <= '9'))
printf("表示式輸入錯誤!\n"); return 0; }
合法性審查在程式中還有很多,這裡就不一一枚舉惹………………
列印二叉樹結構 資料結構與演算法課程設計報告l
合肥學院 電腦科學與技術系 課程設計報告 2009 2010學年第二學期 2010年6月 題目 列印二叉樹結構 一 問題分析和任務定義 1 問題分析 本任務的要求是 按凹入錶形式橫向列印任意二叉樹結構,即二叉樹的根在螢幕的最左邊,二叉樹的左子樹在螢幕的下邊,二叉樹的右子樹在螢幕的上邊。所謂列印二叉樹...
資料結構二叉樹基本演算法
資料結構實驗報告 實驗四二叉樹儲存結構的應用 實驗內容 二叉樹各種演算法的實現 專業班級 網路工程專業 1002班 組長 賈鑫 2010100234 組員 賈鵬飛 2010100237 鄧桐桐 2010100229 2012年 4月 27日 實驗報告 實驗型別 綜合實驗室 軟體實驗室二一 實驗名稱 ...
資料結構與演算法 二叉樹的儲存結構
順序儲存結構 該方法是把二叉樹的所有結點按照一定的線性次序儲存到一片連續的儲存單元中。結點在這個序列中的相互位置還能反映出結點之間的邏輯關係。1 完全二叉樹結點編號 1 編號辦法 在一棵n個結點的完全二叉樹中,從樹根起,自上層到下層,每層從左至右,給所有結點編號,能得到乙個反映整個二叉樹結構的線性序...