freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-c數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)設(shè)計(jì)(參考版)

2024-12-07 20:13本頁(yè)面
  

【正文】 在畢業(yè)設(shè)計(jì)期間,老師淵博的學(xué)識(shí),誨人不倦的精神,嚴(yán)謹(jǐn)治學(xué)的態(tài)度,以及對(duì)我們的嚴(yán)格要求都使我深深難忘,從中受益非淺。由于我是名新手,對(duì)制作一個(gè)這樣的完整的“數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)”有著許多的困難。相信在不斷的努力后,我會(huì)進(jìn)一步提高自己的水平,作出更好的成績(jī)。 問(wèn)題不足: (1)該系統(tǒng)相對(duì)復(fù)雜的演示系統(tǒng)稍顯簡(jiǎn)易,只實(shí)現(xiàn)了結(jié)構(gòu)的基礎(chǔ)操作,對(duì)復(fù)雜算法的演示比較少,如多項(xiàng)式運(yùn)算、最小生成樹(shù)等等; (2)在多數(shù)演示過(guò)程中, 沒(méi)能實(shí)現(xiàn)單步演示 。 結(jié)束語(yǔ) 通過(guò)幾個(gè)月的學(xué)習(xí)、實(shí)踐, 在老師 和同學(xué)幫助下,我所做的演示系統(tǒng)基本成型,下面闡述一下系統(tǒng)的有關(guān)情況。 算法說(shuō)明操作 操作運(yùn)行如圖 32 所示。 結(jié)構(gòu)二叉樹(shù) 輸入幾個(gè)數(shù)字,再點(diǎn)選結(jié)點(diǎn)內(nèi)容,就產(chǎn)生如圖示,將鼠標(biāo)指針?lè)旁诮Y(jié)點(diǎn)上方就會(huì)看到結(jié)點(diǎn)索引值;本范例索引值由 0 開(kāi)始,左、右子樹(shù)對(duì)應(yīng)索引值,請(qǐng)留心樹(shù)狀結(jié)構(gòu)連接的方式,在構(gòu)建樹(shù)的 同時(shí),也順便比較內(nèi)容顯示;在本章二叉樹(shù)的構(gòu)建,都是在運(yùn)行時(shí)產(chǎn)生新的類別控件,請(qǐng)留意圖形配置與連接的方式。 如果看不清楚鏈表數(shù)據(jù)與指針動(dòng)向的話,可以拉動(dòng)右下方控制條來(lái)調(diào)整顯示窗口的背景亮度 樹(shù)操作 樹(shù) 運(yùn)行如圖 317 321 323 所示 數(shù)據(jù)二叉樹(shù) 輸入幾個(gè)數(shù)字就建立起二叉樹(shù)的結(jié)構(gòu),請(qǐng)?zhí)貏e注意數(shù)字的大小與左右連接的關(guān)系;當(dāng)輸入的時(shí)候下方會(huì)出現(xiàn)輸入值在樹(shù)的第幾層信息。 雙向鏈表 畫面初始設(shè)置加入指向?yàn)椤坝汕啊保阪湵盹@示窗口中單擊鼠標(biāo)右鍵,即彈出快捷菜單,單擊“加入結(jié)點(diǎn)”,連續(xù)加入兩筆數(shù)據(jù)即得圖示的結(jié)果,請(qǐng)隨時(shí)注意指針的變化;在“加入指向”面板中點(diǎn)選“往后”,再按右鍵加入兩筆數(shù)據(jù),即可看見(jiàn)這兩筆數(shù)據(jù)是向后接續(xù)的;單擊鼠標(biāo)右鍵,選擇“插入接點(diǎn)”選項(xiàng),即彈出“插入數(shù)據(jù)輸入框”,要求我們安排位置,我們將新數(shù)據(jù)計(jì)劃放在數(shù)據(jù)一后方,因此輸入數(shù)據(jù)一;之后彈出“數(shù)據(jù)輸入”的要求,我們輸入數(shù)據(jù)五;彈出項(xiàng) 目管理對(duì)話框,告訴我們新結(jié)點(diǎn)的位置在第 3 結(jié)點(diǎn);可發(fā)現(xiàn)圖中數(shù)據(jù)五已加入成為鏈表的第 3 個(gè)結(jié)點(diǎn)。 鏈表操作 單擊“加入”按紐以輸入數(shù)據(jù),連續(xù)建立 7 個(gè)鏈表結(jié)點(diǎn)后單擊“顯示”按紐,即得到右方圖示的內(nèi)容;輸入“數(shù)據(jù)五”單擊“查找”按紐,就得到數(shù)據(jù) 5 在第 3 結(jié)點(diǎn)的信息;單擊“刪除”按紐,即跳出刪除結(jié)點(diǎn)的畫面,列表顯示中也少了數(shù)據(jù)五。在操作面板中輸入內(nèi)容后,單擊“奪后”按紐,即可看到數(shù)據(jù)從后面接續(xù);當(dāng)數(shù)據(jù)超出面板時(shí), 以箭頭變化代表存取變化。 鏈表模型 在操作面板中輸入內(nèi)容后,單擊“按紐”即可看到數(shù)據(jù)從前方插入。 線性表操作 線性表 運(yùn)行如圖 3 3 3 315 所示。 } // 4 系統(tǒng)操作 主菜單操作 主菜單運(yùn)行如圖 32 所示。 } // void __fastcall TForm1::Button1Click(TObject *Sender) { Memo1LinesSaveToFile()。 Memo2LinesText=。 } // void __fastcall TForm1::Button2Click(TObject *Sender) { Memo1LinesText=。 } // void __fastcall TForm1::N13Click(TObject *Sender) { Memo1LinesLoadFromFile()。 } // void __fastcall TForm1::N11Click(TObject *Sender) { Memo1LinesLoadFromFile()。主要顯示各種算法的說(shuō)明,輔助大家更好地學(xué)習(xí)。 根據(jù)以上思想,我設(shè)計(jì)了一個(gè)查找結(jié)點(diǎn)的類別二叉樹(shù),運(yùn)行界面如圖 323 所示。若限定先左后右,則只有前三種情況,分別稱之先序遍歷、中序遍歷和后序遍歷。因此,若能依次遍歷這三部分,便是遍歷了整個(gè)二叉樹(shù)。遍歷對(duì)線性結(jié)點(diǎn)來(lái)說(shuō),是容易解決的,而對(duì)二叉樹(shù)則不然,由于 二叉樹(shù)是一種非線性結(jié)構(gòu),每個(gè)結(jié)點(diǎn)都可能有兩課子樹(shù),因而需要尋找一種規(guī)律,以便使二叉樹(shù)上的結(jié)點(diǎn)能排列在一個(gè)線性隊(duì)列上,從而便于遍歷。這就提出了了一個(gè)遍歷二叉樹(shù)的問(wèn)題,如果按某條搜索路徑巡訪樹(shù)中每個(gè)結(jié)點(diǎn),使得每個(gè)結(jié)點(diǎn)均被訪問(wèn)一次,而且僅被訪問(wèn)一次。 i=WinExec((),SW_SHOWNORMAL)。 圖 321結(jié)構(gòu)二叉樹(shù)的顯示圖 i+1 2i+2 2i+3 i 2i 2i+1 (b) 圖 319 完全二叉樹(shù)中結(jié)點(diǎn) i和 i+1的左右孩子 (a) 結(jié)點(diǎn) i和 i+1在同一層 (b) 結(jié)點(diǎn) i和 i+1不在同一層 (c) 6 1 2 3 4 5 0 0 0 0 7 圖 320 二叉樹(shù)的順序儲(chǔ)存結(jié)構(gòu) (3)在菜單中,我們通過(guò)調(diào)用 WinExec 函數(shù),以執(zhí)行外部命令的方式,調(diào)用 類別二叉樹(shù) .exe 程序,來(lái)完成類別二叉樹(shù)的演示。對(duì)于一般二叉樹(shù),則應(yīng)將其每個(gè)結(jié)點(diǎn)與完全二叉樹(shù)上的結(jié)點(diǎn)相對(duì)照,存儲(chǔ)在一維數(shù)組的相應(yīng)分量中,如圖 319 所示,二叉樹(shù)的順序存儲(chǔ)結(jié)構(gòu)如圖 320 所示 ,圖中以“ 0”表示不存在此結(jié)點(diǎn)。 i=WinExec((),SW_SHOWNORMAL)。 圖 317數(shù)組二叉樹(shù)的顯示圖 (a) (2)在菜單中,我們通過(guò)調(diào)用 WinExec 函數(shù),以執(zhí)行外部命令的方式,調(diào)用 結(jié)構(gòu)二叉樹(shù) .exe 程序,來(lái)完成結(jié)構(gòu)二叉樹(shù)的演示。 二叉樹(shù)是樹(shù)的一種,應(yīng)用最多也最廣,它的子接點(diǎn)最多兩個(gè),故稱為二叉樹(shù),與一般的樹(shù)比較,二叉樹(shù)可為空,與子樹(shù)有順序關(guān)系且結(jié)點(diǎn)度數(shù)最大為 2。 在數(shù)組二叉樹(shù)的實(shí)現(xiàn)中, 樹(shù)是由根莖和葉構(gòu)成,顧名思義樹(shù)狀結(jié)構(gòu)也具有這樣的組成特點(diǎn)的結(jié)構(gòu)形態(tài);然而必須注意在數(shù)據(jù)結(jié)構(gòu)中,樹(shù)的生長(zhǎng)方向是向下的,而且決定延伸的環(huán)節(jié)是由結(jié)點(diǎn)和線段所組成的。源代碼如下: NewFileName=ExtractFilePath(ApplicationExeName)+數(shù)組 二叉樹(shù) .exe。圖313 和圖 314 分別顯示了刪除和插入結(jié)點(diǎn)時(shí)指針修改的情況。在雙向鏈表中,若 d 為指向表中一結(jié)點(diǎn)的指針,則顯然有 dnextprior=dpriornext=d 這個(gè)表示式恰當(dāng)?shù)胤从沉诉@種結(jié)構(gòu)的特性。顧名思義,在雙向鏈表的結(jié)點(diǎn)中有兩個(gè)指針域,其一指向直接后繼,另一指向直接前趨。 以上討論的鏈表存儲(chǔ)結(jié)構(gòu)的結(jié)點(diǎn)中只有一個(gè)指示直接后繼的指針域的指針域,因此,從某個(gè)結(jié)點(diǎn)結(jié)點(diǎn)出發(fā)只能順指針往后尋查其他結(jié)點(diǎn)。源代碼如下: NewFileName=ExtractFilePath(ApplicationExeName)+雙向鏈表 .exe。 可見(jiàn), 在已知鏈表中元素插入或刪除的確切位置的情況下,在單鏈表中插入或刪除一個(gè) 結(jié)點(diǎn)時(shí),僅需 修改指針而不需要移動(dòng)元素。 反之,如圖 39 所示在線性表中刪除元素 b 時(shí),為在單鏈表中實(shí)現(xiàn)元素 a、 b 和 c 之間的邏輯關(guān)系的變化,僅需要修改結(jié)點(diǎn) a 中的指針域即可。假設(shè) s 為指向結(jié)點(diǎn) x 的指針,則上述指針修改用語(yǔ)句描述即為: snext=pnext 。根據(jù)插入操作的邏輯 定義,還需要修改結(jié)點(diǎn) a 中的指針域,令其指向結(jié)點(diǎn) x,而結(jié)點(diǎn) x 中的指針域應(yīng)指向結(jié)點(diǎn) b,從而實(shí)現(xiàn) 3 個(gè)元素 a、 b 和 x 之間邏輯關(guān)系的變化。 在鏈表操作的實(shí)現(xiàn)中,此程序是鏈表的基本操作模型, 在這種存儲(chǔ)結(jié)構(gòu)中,容易實(shí)現(xiàn)線性表的某些操作, 在此程序中,我們重點(diǎn)實(shí)現(xiàn)了鏈表的插入和刪除。源代碼如下: NewFileName=ExtractFilePath(ApplicationExeName)+鏈表操作 .exe。 根據(jù)以上思想,我設(shè)計(jì)該程序的運(yùn)行頁(yè)面如圖 36 所示。線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)是用一組任意的 存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元 素 (這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的 )。 i=WinExec((),SW_SHOWNORMAL)。 圖 34 鏈表概念顯示圖 (2)在菜單中,我們通過(guò)調(diào)用 WinExec 函數(shù),以執(zhí)行外部命 令的方式,調(diào)用 鏈表模型 .exe程序,來(lái)完成鏈表模型的演示。 此程序是用一組地址連續(xù)的存儲(chǔ)單位依次存儲(chǔ)線性表的數(shù)據(jù)元素,以此實(shí)現(xiàn)線性表的順序存儲(chǔ)結(jié)構(gòu),這種存儲(chǔ)結(jié)構(gòu)的線性表叫順序表。 i=WinExec((),SW_SHOWNORMAL)。 線性表模塊 (1)在菜單中,我們通過(guò)調(diào)用 WinExec 函數(shù),以執(zhí)行外部命令的方式,調(diào)用 鏈表概念 .exe程序,來(lái)完成鏈表概念的演示。 圖 32 主菜單的顯示圖 程序 數(shù)據(jù)結(jié)構(gòu) 操作 幫助 退出 線性表 堆棧和隊(duì)列 樹(shù) 圖 堆棧說(shuō)明 隊(duì)列說(shuō)明 樹(shù)說(shuō)明 關(guān)于 幫助 圖說(shuō)明 開(kāi)始 圖 33 主菜單流程圖 線性表說(shuō)明 (3)控件介紹: C++ Builder 的組件工具箱 (Component Palette)提供各種制作組件的工具,包括文字標(biāo)簽、文本框、圖象組件等。如圖 32 所示: (2)設(shè)計(jì)思想: 作為一個(gè)演示系統(tǒng)的菜單,應(yīng)給人一個(gè)直觀的感覺(jué),有個(gè)醒目的標(biāo)題,通過(guò)一個(gè)菜單控件,連接我們?cè)O(shè)計(jì)的各種數(shù)據(jù)結(jié)構(gòu)的算法演示;兩個(gè)文本輸入,用于對(duì)算法的說(shuō)明,輔助使用者對(duì)算法的學(xué)習(xí);作為一個(gè)系統(tǒng),一個(gè)幫助模 塊是不可缺少的。 主菜單、線性表、樹(shù)、操作四部分模塊的設(shè)計(jì)。 本系統(tǒng)是由我與另外一個(gè)同學(xué)合作完成的,根據(jù)系統(tǒng)的結(jié)構(gòu),我們對(duì)各自的任務(wù)做了明確的分工。 程序模塊由退出組成。 操作模板由線性表說(shuō)明、堆棧說(shuō)明、隊(duì)列說(shuō)明、樹(shù)說(shuō)明、圖說(shuō)明組 成。 數(shù)據(jù)結(jié)構(gòu)模板由線性表、堆棧和隊(duì)列、樹(shù)、圖等四個(gè)部分組成?;蛘?,也可以每次捕捉到異常之后都保存一次。其中,他提到了使用 TStringList 作記錄的方法:先將錯(cuò)誤通過(guò) TStringList 的 Add 方法加入到 StringList 里面,然后使用 SaveToFile 保存到硬盤上 。所有的 Delphi/Cbuilder 用戶都注意到了這一點(diǎn),但是說(shuō) 沒(méi)有付出就沒(méi)有收獲。E,其中的 ()將返回捕獲到的產(chǎn)生異常的實(shí)際類名。 ClassName()給了 什么樣的幫助呢?它只是用于返回字符串“ Exception”嗎?每一次,E 都被聲明為異常類型?這是 VCL 另一個(gè)優(yōu)秀的地方,所有的類都從 Tobject 繼承,所以,這些類都能自動(dòng)獲得正確的類型和基類的類型,所有的更多的信息都可以在這里找到。在出現(xiàn)錯(cuò)誤時(shí),你會(huì)立刻知道錯(cuò)誤發(fā)生的位置。 }。在代碼中每一個(gè)函數(shù)或是主要的函數(shù)中加入: try { //函數(shù)的代碼 } catch(Exception amp。一個(gè)在IDE 中產(chǎn)生的異常會(huì)導(dǎo)致很多問(wèn)題,甚至可能無(wú)法重新啟動(dòng) IDE 也不能恢復(fù)。一般來(lái)說(shuō),通過(guò)很多的 bugs 測(cè)試后(盡量折磨程序,看看它會(huì)不會(huì)崩潰),應(yīng)用程序在運(yùn)行是應(yīng)該不會(huì)出現(xiàn)什么錯(cuò)誤。( Gexperts 的控制臺(tái)就是用這樣的方法制作的)。通常,在運(yùn)行 10分鐘左右之后,會(huì)使整個(gè)計(jì)算機(jī)的速度變慢!所以,如果 希望 在自己的記錄中能夠使用彩色和圖標(biāo),那么最好自己創(chuàng)建一個(gè)組件。這個(gè)方法可能不是想象的這么簡(jiǎn)單。 Gexperts 可以在 得到,它是免費(fèi)的。 或者,你需要它更機(jī)警一些,可以使用 SendDebugEx(它給 TMsgDlgType 增加了一個(gè)新的消息類型 )SendMethodEnter, SendMethodExit, SendSeparator 等等(用法都差不多)。要使用 dbugintf,它很容易被加入到你的工程中,加入 incl
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1