數(shù)據(jù)結(jié)構(gòu)間縱橫聯(lián)系探究論文_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)間縱橫聯(lián)系探究論文_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)間縱橫聯(lián)系探究論文_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)間縱橫聯(lián)系探究論文_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)間縱橫聯(lián)系探究論文1引言數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)核心學(xué)科,其主要研究?jī)?nèi)容:邏輯結(jié)構(gòu),物理存儲(chǔ)結(jié)構(gòu),操作(或算法)[1]。通常,算法的設(shè)計(jì)取決于數(shù)據(jù)的邏輯結(jié)構(gòu),算法的實(shí)現(xiàn)取決于數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)。邏輯結(jié)構(gòu)的定義、存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)、操作運(yùn)算的實(shí)現(xiàn)是對(duì)數(shù)據(jù)結(jié)構(gòu)研究的基本思想,一種數(shù)據(jù)結(jié)構(gòu)的研究首先對(duì)這三方面內(nèi)容有一個(gè)清晰的探討。集合數(shù)據(jù)結(jié)構(gòu)與數(shù)學(xué)中集合概念是一致的,其邏輯結(jié)構(gòu)元素間只是同屬關(guān)系。存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)只是在計(jì)算機(jī)內(nèi)存儲(chǔ),它的操作就是一些交、差、并、補(bǔ)等。線型結(jié)構(gòu)是N個(gè)數(shù)據(jù)元素的有限序列,至于每一個(gè)數(shù)據(jù)元素的具體的含義在不同的情況下各不相同,其長(zhǎng)度可根據(jù)需要增長(zhǎng)或縮短,其邏輯結(jié)構(gòu)就是它的數(shù)據(jù)元素間的線形關(guān)系,即一個(gè)對(duì)一個(gè),一個(gè)元素最多有一個(gè)前驅(qū),最多有一個(gè)后繼。它的存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)一般有順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)兩種方法。順序表是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性結(jié)構(gòu)中的數(shù)據(jù)元素,這是一種隨機(jī)存取的存儲(chǔ)結(jié)構(gòu);鏈?zhǔn)酱鎯?chǔ)是數(shù)據(jù)元素之間的邏輯關(guān)系由結(jié)點(diǎn)中的指針來(lái)表示并且每一個(gè)結(jié)點(diǎn)有且只有一個(gè)指針域。線性結(jié)構(gòu)的操作中,最基本的操作是在線性結(jié)構(gòu)中插入、刪除數(shù)據(jù)元素。存儲(chǔ)結(jié)構(gòu)為順序存儲(chǔ)有線性順序表、數(shù)組、串等。存儲(chǔ)結(jié)構(gòu)為鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí)有鏈表等。根據(jù)線性表的操作的不同便產(chǎn)生了兩種重要的數(shù)據(jù)結(jié)構(gòu)即棧和隊(duì)列,這兩種數(shù)據(jù)結(jié)構(gòu)是線性結(jié)構(gòu)的典型例子[2]。樹(shù)型結(jié)構(gòu)是一種重要的非線性結(jié)構(gòu),其中的樹(shù)和二叉樹(shù)最為常用。直觀看來(lái),樹(shù)是以分支關(guān)系定義的層次結(jié)構(gòu),其邏輯結(jié)構(gòu)是一對(duì)多的關(guān)系,而在二叉樹(shù)中是一個(gè)根結(jié)點(diǎn)對(duì)應(yīng)左右兩個(gè)孩子的層次關(guān)系。存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)當(dāng)采取順序存儲(chǔ)時(shí)用一組地址連續(xù)的存儲(chǔ)單元依上而下、自左向右存儲(chǔ)樹(shù)中的結(jié)點(diǎn)元素。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中可采用二叉鏈表表示法即鏈表中結(jié)點(diǎn)的兩個(gè)鏈域分別指向該結(jié)點(diǎn)的第一個(gè)孩子和下一個(gè)兄弟結(jié)點(diǎn),樹(shù)形結(jié)構(gòu)的最基本的操作是遍歷,其它復(fù)雜的操作大部分就是遍歷操作的衍生與擴(kuò)展。在樹(shù)型結(jié)構(gòu)中最有特色的一種數(shù)據(jù)結(jié)構(gòu)就是二叉樹(shù),其獨(dú)特的邏輯結(jié)構(gòu)是每個(gè)結(jié)點(diǎn)至多有二棵子樹(shù)并且還有左右之分,這就決定著它獨(dú)特的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),每個(gè)數(shù)據(jù)元素有且只有兩個(gè)指針?lè)謩e指向該結(jié)點(diǎn)的左右孩子。二叉樹(shù)的最基本的操作是遍歷二叉樹(shù),對(duì)每個(gè)結(jié)點(diǎn)的訪問(wèn)是對(duì)其它復(fù)雜操作的基礎(chǔ),例如統(tǒng)計(jì)結(jié)點(diǎn)個(gè)數(shù)、統(tǒng)計(jì)葉子結(jié)點(diǎn)數(shù)、交換二叉樹(shù)的左右孩子等一些復(fù)雜的操作運(yùn)算均是遍歷二叉樹(shù)操作的擴(kuò)展和衍生。基于二叉樹(shù)的遞歸定義可得到遍歷二叉樹(shù)遞歸算法,前序遍歷、中序遍歷、后序遍歷二叉樹(shù)。圖狀結(jié)構(gòu)是一種較線型結(jié)構(gòu)和樹(shù)更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),圖的邏輯結(jié)構(gòu)是多對(duì)多的關(guān)系即在圖形結(jié)構(gòu)中結(jié)點(diǎn)之間的關(guān)系是任意的。因此在存儲(chǔ)結(jié)構(gòu)中無(wú)法以數(shù)據(jù)元素在存儲(chǔ)區(qū)中的物理位置來(lái)表示數(shù)據(jù)元素間的關(guān)系。即圖沒(méi)有順序映象但可以借助數(shù)組的數(shù)據(jù)類(lèi)型表示元素之間的關(guān)系,用兩個(gè)數(shù)組分別存儲(chǔ)數(shù)據(jù)元素(頂點(diǎn))的信息和數(shù)據(jù)元素之間的關(guān)系信息[3]。另一方面圖的存儲(chǔ)結(jié)構(gòu)也可由多重鏈表實(shí)現(xiàn),即一個(gè)由一個(gè)數(shù)據(jù)域和多個(gè)指針域組成的結(jié)點(diǎn)來(lái)表示圖中的一個(gè)頂點(diǎn),其中數(shù)據(jù)域存儲(chǔ)該頂點(diǎn)的信息,指針域存儲(chǔ)指向鄰接點(diǎn)的指針,但由于圖中各個(gè)結(jié)點(diǎn)的度各不相同,結(jié)點(diǎn)的指針域設(shè)定不易確定,則圖的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)可用鄰接多重表表示法,對(duì)圖中每個(gè)頂點(diǎn)建立一個(gè)單鏈表,第一個(gè)單鏈表的結(jié)點(diǎn)表示依附于頂點(diǎn)V的邊,每個(gè)結(jié)點(diǎn)由三個(gè)域組成其中鄰接點(diǎn)域指示頂點(diǎn)V的鄰接點(diǎn)在圖中的位置,鏈域指示下一條邊或弧的結(jié)點(diǎn),數(shù)據(jù)域存儲(chǔ)和邊或弧相關(guān)的信息,如權(quán)值等。每個(gè)鏈表附有一個(gè)表頭結(jié)點(diǎn)。在表頭結(jié)點(diǎn)中除了設(shè)有鏈域指向鏈表中第一個(gè)結(jié)點(diǎn)外還設(shè)有存儲(chǔ)頂點(diǎn)的名或其它有關(guān)信息的數(shù)據(jù)域,這樣實(shí)現(xiàn)了圖的鏈?zhǔn)酱鎯?chǔ)。遍歷是最基本的操作也是最重要的操作運(yùn)算,它是求解圖的連通性、拓?fù)渑判蚝颓箨P(guān)鍵路徑的基礎(chǔ),然而圖的遍歷比樹(shù)的遍歷復(fù)雜的多,因?yàn)閳D的任一頂點(diǎn)都有可能和其余的頂點(diǎn)相鄰接。所以在訪問(wèn)某個(gè)頂點(diǎn)之后可能沿著某條路徑搜索之后又回到該頂點(diǎn)上。因此要設(shè)有一個(gè)輔助數(shù)組V[0..n-1],它的初始值置為假,一旦訪問(wèn)頂點(diǎn)Vi,便置V[i]為真,這樣避免了同一個(gè)頂點(diǎn)被訪問(wèn)多次,對(duì)圖的遍歷有深度優(yōu)先搜索和廣度優(yōu)先搜索。圖的深度優(yōu)先搜索遍歷類(lèi)似樹(shù)的先根遍歷,是樹(shù)的先根遍歷的推廣。廣度優(yōu)先搜索類(lèi)似樹(shù)的按層次遍歷的過(guò)程。圖狀結(jié)構(gòu)中復(fù)雜的操作大部分都是以圖的遍歷為基礎(chǔ)。因此無(wú)論對(duì)于線型結(jié)構(gòu)、樹(shù)性結(jié)構(gòu)、網(wǎng)狀或圖,它們都遵循著邏輯結(jié)構(gòu)的定義、存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)、操作運(yùn)算方法的實(shí)現(xiàn)模式來(lái)實(shí)現(xiàn)每種數(shù)據(jù)結(jié)構(gòu)的類(lèi)型。在數(shù)據(jù)結(jié)構(gòu)研究中對(duì)每種數(shù)據(jù)結(jié)構(gòu)的研究只有對(duì)它的這三個(gè)方面內(nèi)容的研究,才能對(duì)它進(jìn)行探索、掌握、改進(jìn)。這是數(shù)據(jù)結(jié)構(gòu)研究中的基本思想。在數(shù)據(jù)結(jié)構(gòu)研究中當(dāng)前面向各專(zhuān)門(mén)領(lǐng)域特殊問(wèn)題的多維數(shù)據(jù)結(jié)構(gòu)和從抽象數(shù)據(jù)類(lèi)型的觀點(diǎn)來(lái)討論數(shù)據(jù)結(jié)構(gòu),都不能背離這個(gè)思想。用棧實(shí)現(xiàn)二叉樹(shù)的前序遍歷算法:Statupreorder(bitreet){P=t;Inittack();Puh(,p);].北京:科學(xué)出版社.2002年[2]嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].北京:清華大學(xué)出版社.1997年[4]藍(lán)雯飛.數(shù)據(jù)結(jié)構(gòu)的面向?qū)ο竺枋龇椒ㄑ芯縖J].計(jì)算機(jī)工程與應(yīng)用,2006;42(26):79-80[5]劉毅.關(guān)于Treap數(shù)據(jù)結(jié)構(gòu)問(wèn)題的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2005;22(8):36-38[6]胡澤明,岳瑞生,王志剛.嵌入式GIS線要素?zé)o縫拼接的數(shù)據(jù)結(jié)及實(shí)現(xiàn)算法[J].測(cè)繪科學(xué),2006;31(5):102-10

溫馨提示

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

評(píng)論

0/150

提交評(píng)論