【正文】
摘要 數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng) 數(shù)據(jù)結(jié)構(gòu)在計算機(jī)科學(xué)中是一門綜合性的專業(yè)基礎(chǔ)課,它不僅設(shè)計到計算機(jī)硬件 (特別是編碼理論、存儲裝置和存取方法等 )的研究范圍,而且和計算機(jī)軟件的研究有著更密切的關(guān)系,無論是編譯程序還是操作系統(tǒng),都涉及到數(shù)據(jù)元素在存儲器中的 分配問題 。在研究信息檢索時也必須考慮如何組織數(shù)據(jù),以便查找和存取數(shù)據(jù)元素更方便。因此,它是介于數(shù)學(xué)、計算機(jī)硬件和計算機(jī)軟件三者之間的一門核心課程。在計算機(jī)科學(xué)中,數(shù)據(jù)結(jié)構(gòu)不僅是一般程序設(shè)計的基礎(chǔ),而且是設(shè)計和實現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)及其他系統(tǒng)程序和大型應(yīng)用 程序的重要基礎(chǔ)。 本文充分利用 C++ BUILDER 的 RAD 優(yōu)點,設(shè)計并建立了一套數(shù)據(jù)結(jié)構(gòu)算法的演示系統(tǒng)。講解了線性表、堆棧和隊列、樹、圖等數(shù)據(jù)結(jié)構(gòu)的概念,該系統(tǒng) 具有操作便捷、形象生動等特點,對于深化對數(shù)據(jù)結(jié)構(gòu)算法的理解,提高計算機(jī)程序設(shè)計水平具有很好的促進(jìn)作用,而且具有一定的實用價值,能有效地改善數(shù)據(jù)結(jié)構(gòu)算法教學(xué)的質(zhì)量和效率,對于其他類似系統(tǒng)也有很大的借鑒意義。 關(guān)鍵字: 數(shù)據(jù)結(jié)構(gòu);算法; C++ BUILDER Abstract Data structure algorithms demonstration system Data structures,is a prehensive professional foundation courses in puter science, not only to studied puter hardware design (especially coding theory, storage devices and visit methods), and researched puter software in closer relationship, whether translation or operating system, data elements are involved in the allocation of memory. In information retrieval research, data must also consider how to anize in order to identify the data elements and visit more convenient. Therefore, it is a door core curriculum between mathematics, puter hardware and puter software. In puter science, data structure is not only the basis for general programming, but also the design and realization of heavy editing procedures, operating systems, database systems and other systems procedures and the essential foundation for largescale applications. The full use of the RAD advantage C++ builder design and build a data structure algorithms demonstration system. On the linear tables, Duizhan and Britain, trees, maps, and other data structure concept, the system has operated convenient, vivid image characteristics of the data structure to deepen the understanding of algorithms to improve the level of puter programming in good catalyst, but with some practical value to effectively improve data structure algorithms teaching quality and efficiency For other similar systems. Key words: Data structure; Algorithms; C++ builder 目 錄 1 緒論 ................................................................................................................... 1 2 需求分析 ........................................................................................................... 2 解決問題 ................................................................................................... 2 具備功能 ................................................................................................... 2 3 系統(tǒng)設(shè)計 ........................................................................................................... 3 開發(fā)及使用環(huán)境 ....................................................................................... 3 系統(tǒng)結(jié)構(gòu) ................................................................................................. 10 詳細(xì)設(shè)計 ................................................................................................. 12 4 系統(tǒng)操作 ......................................................................................................... 28 主菜單操作 ............................................................................................. 28 線性表操作 ............................................................................................. 28 樹操作 ..................................................................................................... 29 算法說明操作 ......................................................................................... 30 結(jié)束語 ................................................................................................................. 30 謝 辭 ............................................................................................................... 32 參考文獻(xiàn) ............................................................................................................. 33 附錄 ..................................................................................................................... 34 附錄 A 外文翻譯-原文部分 ....................................................................... 34 附錄 B 外文翻譯-譯文部分 ....................................................................... 40 附錄 C 源代碼 .............................................................................................. 46 1 緒論 數(shù)據(jù)結(jié)構(gòu)是在整個計算機(jī)科學(xué)與技術(shù)領(lǐng)域上廣泛被使用的術(shù)語。它用來反映一個數(shù)據(jù)的內(nèi)部構(gòu)成,即一個數(shù)據(jù)由那些成分?jǐn)?shù)據(jù)構(gòu)成,以什么方式構(gòu)成,呈什么結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)有邏輯上的數(shù)據(jù)結(jié)構(gòu)和物理上的數(shù)據(jù)結(jié)構(gòu)之分。邏輯上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)之間的邏輯關(guān)系,而物理上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)在計算機(jī)內(nèi)部的存儲安排。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)存在的形式。 數(shù)據(jù)結(jié)構(gòu)是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應(yīng),通過這組算法集合可以對數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行某 種操作。數(shù)據(jù)結(jié)構(gòu)課程的主要目的是介紹一些常用的數(shù)據(jù)結(jié)構(gòu),闡明數(shù)據(jù)結(jié)構(gòu)內(nèi)在的邏輯關(guān)系,討論它們在計算機(jī)中的存儲表示,并結(jié)合各種數(shù)據(jù)結(jié)構(gòu),討論對它們實行的各種運算的實現(xiàn)算法。很多算法實際上是對某種數(shù)據(jù)結(jié)構(gòu)施行的一種變換,研究算法也就是研究在實施變換過程中數(shù)據(jù)結(jié)構(gòu)的動態(tài)性質(zhì)。 數(shù)據(jù)結(jié)構(gòu),作為計算機(jī)學(xué)科的基礎(chǔ)性專業(yè)課程,其在計算機(jī)科學(xué)中的及其重要,課程學(xué)習(xí)的好壞,直接關(guān)系到學(xué)員后期計算機(jī)水平的高低。而這門課程一直因為過于抽象,難以理解,而讓人望而止步。如果能夠把這門抽象的課程變得具體而生動,必將提高學(xué)習(xí)人員興趣,增 加其積極性和主動性,也有利于人員的對此課程的學(xué)習(xí)。 基于這些目的,我們開發(fā)了這個數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng), 數(shù)據(jù)結(jié)構(gòu)是我們所做的系統(tǒng)的主要理論基礎(chǔ),我 們 完成了 線性表、堆棧、隊列、樹、圖幾個主要結(jié)構(gòu),在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課程的時候,我們了解了這些結(jié)構(gòu)的算法,當(dāng)時也做過一些相關(guān)的程序,在此基礎(chǔ)之上,我運用 c++ builder 開發(fā)工具,把這些算法演示出來。 數(shù)據(jù)結(jié)構(gòu)算法演示 系統(tǒng) 可以演示線性表、堆棧、隊列、樹、圖等幾個基礎(chǔ)結(jié)構(gòu)的算法,輔助一些算法說明,讓使用者更好地掌握算法,在幫助中把演示的具體過程和操作做詳細(xì)的介紹。 該系統(tǒng)具有操作簡單、形象生動,能很好地改善人員對數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)理解,從很大程度上提高人員的學(xué)習(xí)質(zhì)量和效率。 2 需求分析 解決問題 做為一個數(shù)據(jù)結(jié)構(gòu)演示系統(tǒng),首先我們確定要演示的內(nèi)容,在本系統(tǒng)中,我們對線性表、堆棧和隊列、樹、圖幾個主要數(shù)據(jù)結(jié)構(gòu)做了講解;接著,對四種算法的說明也是必不可少的,這樣配合演示,可以達(dá)到更好地效果;最后,作為我們設(shè)計的演示過程,使用者對操作不是太了解,我們有必要做個詳細(xì)的操作過程,讓使用者更好地操作系統(tǒng)。 具備功能 系統(tǒng)由數(shù)據(jù)結(jié)構(gòu)、操作、幫助、程序四個部分組成?,F(xiàn)分述如下: 數(shù)據(jù)結(jié)構(gòu)由 線性表、堆棧和隊列、樹、圖等四個部分組成,分別對應(yīng)數(shù)據(jù)結(jié)構(gòu)的四個部分。線性表又分為鏈表概念、鏈表模型、鏈表操作、雙向鏈表四個部分,堆棧和隊列分為基本堆棧、基本隊列、循環(huán)隊列三個部分,樹分為數(shù)據(jù)二叉樹、結(jié)構(gòu)二叉樹、類二叉樹,圖分為圖表示、圖搜索、最短路徑。 操作由線性表說明、堆棧說明、隊列說明、樹說明、圖說明組成,對各數(shù)據(jù)結(jié)構(gòu)的算法說明。 幫助由關(guān)于和幫助組成,是本系統(tǒng)的一些說明和對演示過程的操作詳細(xì)說明。 程序部分由退出組成,完成系統(tǒng)的終止。 3 系統(tǒng)設(shè)計 開發(fā)及使用環(huán) 境 C++ BUILDER C++ BUILDER 介紹 提起 Borland C/C++,相信業(yè)界的許多朋友都會感慨萬千,因為它曾帶領(lǐng)很多人跨進(jìn)了Windows 開發(fā)的大門。和美國 Inprise 公司 (原 Borland 公司 )其他面向企業(yè)分布式系統(tǒng)的開發(fā)工具 (如 Delphi 、 Jbuilder )相比,新近推出的最新版本 C++ RAD(快速應(yīng)用開發(fā))工具――Borland C++ Builder 4,無論是在開發(fā)環(huán)境、分布式應(yīng)用系統(tǒng)開發(fā)、支持已