數(shù)據(jù)結(jié)構(gòu)上機試驗報告_第1頁
數(shù)據(jù)結(jié)構(gòu)上機試驗報告_第2頁
數(shù)據(jù)結(jié)構(gòu)上機試驗報告_第3頁
數(shù)據(jù)結(jié)構(gòu)上機試驗報告_第4頁
數(shù)據(jù)結(jié)構(gòu)上機試驗報告_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)結(jié)構(gòu)上機試驗報告吉林大學

數(shù)據(jù)結(jié)構(gòu)試驗報告

班級:姓名:學號:

姓名試驗項目試驗性質(zhì)學號第一次上機□演示性試驗□驗證性試驗?操作性試驗□綜合性試驗試驗地點計算機樓A108機器編號2023年11月24日時指導教師江麗試驗時間分一、試驗?zāi)康募耙箢}目1:線性表、堆棧、隊列相關(guān)算法的試驗驗證[試驗?zāi)康腯驗證單鏈表及其上的基本操作。[試驗內(nèi)容及要求]1、定義單鏈表類、鏈式棧類、順序隊列類。2、試驗驗證如下算法的正確性、各種功能及指標:1)單鏈表插入操作:分別在當前結(jié)點后、表頭、表尾插入值為x的結(jié)點;2)單鏈表刪除操作:分別刪除表頭結(jié)點、表尾結(jié)點和當前結(jié)點的后繼結(jié)點;3)查找操作:查找值為x的元素在單鏈表中出現(xiàn)的位置(是鏈表中的第幾個元素);4)壓棧和彈棧操作;5)出隊和入隊操作(順序存儲)3、為便于觀測程序的運行結(jié)果,設(shè)計的輸出函數(shù)能在輸出設(shè)備上以圖形或表格或其它直觀的形式輸出計算結(jié)果。例如可將鏈表輸出成如下形式:[1]?[2]?[3]?[4]?[5]4、測試程序時,對所有輸入變量取遍各種有代表性的值。5、為了加強程序的可讀性,程序中要有適當?shù)慕忉尅n}目2(選做題):應(yīng)用單鏈表實現(xiàn)一元多項式及其相加。[試驗?zāi)康腯應(yīng)用單鏈表解決實際應(yīng)用問題。試驗內(nèi)容及要求:1、使用自己已定義的單鏈表類。2、編寫程序?qū)崿F(xiàn)一元多項式的輸入、輸出和加法運算。3、為便于觀測程序的運行結(jié)果,設(shè)計的輸出函數(shù)能在輸出設(shè)備上以圖形或表格或其它直觀的形式輸出計算結(jié)果。4、為程序制定測試方案,對所有輸入變量取遍各種有代表性的值。5、為了加強程序的可讀性,程序中要有適當?shù)慕忉?。二、試驗設(shè)備、軟件PC,windows10Professional,VS2023三、試驗過程(算法設(shè)計、代碼編寫、程序調(diào)試、測試數(shù)據(jù)設(shè)計、測試、報告撰寫)基本數(shù)據(jù)結(jié)構(gòu)選擇及算法設(shè)計:單鏈表類的使用,隊列類的使用,棧類的使用。1、單鏈表類先定義結(jié)點類,包括數(shù)據(jù)類型定義和指向下一個節(jié)點的指針,同時定義指針p,其中p為頭指針,為了讓p在程序終止后時刻指回頭指針,定義函數(shù)getHeadPoint()。構(gòu)造函數(shù)設(shè)置表頭指針為空。析構(gòu)函數(shù)用于清空鏈表,釋放內(nèi)存。append(intelement)函數(shù)為從尾部添加結(jié)點并保存數(shù)據(jù)element。addasFirst(intelement)函數(shù)為從頭部添加結(jié)點并保存element。addAfter(intelement,intlocation)函數(shù)從指定位置將元素生成節(jié)點添加鏈表,如從鏈表第location==2個元素后,添加element==23remove(intelement)刪除指定元素值大小的所有結(jié)點,判斷是否存在。printAll()打印所有鏈表元素值2、棧實現(xiàn)較為簡單,操作函數(shù)僅有兩個,所以自己增加了難度使用類模板結(jié)點類:在結(jié)點中我參與了函數(shù),使程序壓棧更加快捷。StackNode(TData,StackNode*p)p指向下一個指針。棧類:構(gòu)造函數(shù)Stack():top(NULL){};定義頂部節(jié)點為空。析構(gòu)函數(shù)~釋放內(nèi)存。Push(constT//從首部添加鏈表元素voidaddasFirst(intelement);//從指定位置將元素生成節(jié)點添加鏈表,如從鏈表第location==2個元素后,添加element==23voidaddAfter(intelement,intlocation);//刪除指定鏈表元素值大小的所有結(jié)點voidremove(intelement);//返回表頭指針node*getHeadPoint();//打印所有鏈表元素值voidprintAll();棧部分:TPop()voidPush(constTvoidemptySqueue(Squeue*);voidfullSqueue(Squeue*);voidInsqueue(Squeue*,int);voidOutsqueue(Squeue*,int*);voidPrintSqueue(Squeue*);多項式部分關(guān)鍵代碼:voidInitList(PolyNode*&L)//初始化多項式單鏈表,生成一個頭結(jié)點voidInsertNode(PolyNode*&L,floatc,inte,inti)//在多項式鏈表的第i個位置插入結(jié)點voidprint(PolyNode*L)//打印多項式voidCreateList(PolyNode*&L,floatC[],intE[],intn)//創(chuàng)立多項式單鏈表PolyNode*AddPoly(PolyNode*L1,PolyNode*L2)//一元多項式相加程序調(diào)試過程記錄:1、從結(jié)尾添加結(jié)點,忘掉了返回頭指針,導致接下來的程序不能運行。2、刪除結(jié)點時,對于重復結(jié)點欠考慮,導致了很嚴重的問題。包括:刪不了頭,刪不了兩個頭,當兩個重復節(jié)點相鄰時,只能刪除一個,都是規(guī)律問題。在第一次運行時均沒有發(fā)現(xiàn)。后來單獨寫了刪除頭結(jié)點的代碼并判斷,刪除重復節(jié)點后直接執(zhí)行下按一次循環(huán)(continue),解決了這些問題。3、發(fā)現(xiàn)只有規(guī)律刪除沒有物理刪除,又在參與了delete。4.多項式創(chuàng)立出現(xiàn)問題,重新調(diào)整類的結(jié)構(gòu),定義了不同的數(shù)組。測試數(shù)據(jù)設(shè)計:

單鏈表:創(chuàng)立鏈表,用頭、尾、選擇插入各個方法依次插入并輸出檢測。刪除時,刪除:不存在的一個數(shù),頭,雙頭,中間,雙中間,尾,雙尾。(雙意思是重復的數(shù)據(jù))充分考慮到這些問題。依次測試。棧:測試壓棧。彈棧。彈空棧。隊列:測試入隊。出隊。出空隊.多項式:測試多項式的創(chuàng)立和加法測試結(jié)果記錄:單鏈表:棧:隊列:多項式:試驗過程總結(jié)(對所作程序進行分析、評價運行效果,總結(jié)遇到的問題和解決方法):刪除結(jié)點時,在尾節(jié)點刪除會經(jīng)常遇到指針空導致程序崩潰?,F(xiàn)在在對尾結(jié)點進行操作的時候,多了保護指針。姓名試驗項目胡銳學號54160317其次次上機□演示性試驗□驗證性試驗試驗性質(zhì)?操作性試驗□綜合性試驗試驗地點計算機樓A108機器編號2023年12月1日時指導教師江麗試驗時間分一、試驗?zāi)康募耙箢}目1:二叉樹相關(guān)算法的試驗驗證1)從文件創(chuàng)立一棵二叉樹,2)先根、中根、后根遍歷二叉樹;3)在二叉樹中探尋給定結(jié)點的父結(jié)點;4)探尋二叉樹中符合數(shù)據(jù)域條件的結(jié)點;5)從二叉樹中刪除給定結(jié)點及其左右子樹。題目2(選作):森林的遍歷算法的試驗驗證1)創(chuàng)立森林;2)森林的先根遍歷的遞歸和迭代算法;3)森林的后根遍歷的遞歸和迭代算法;4)森林的層次遍歷算法。二、試驗設(shè)備、軟件PC,windows10Professional,VS2023三、試驗過程(算法設(shè)計、代碼編寫、程序調(diào)試、測試數(shù)據(jù)設(shè)計、測試、報告撰寫)基本數(shù)據(jù)結(jié)構(gòu)選擇及算法設(shè)計:1、在二叉樹中探尋給定節(jié)點的父節(jié)點Father1.[t=NULL?]IFt=NULLTHEN(q*t)//中根遍歷并輸出以節(jié)點t為根節(jié)點的子樹voidInOrder(BinTreeNode*t)//后根遍歷并輸出以節(jié)點t為根節(jié)點的子樹voidPostOrder(BinTreeNode*t)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論