1、引言
數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)核心學(xué)科,其主要研究內(nèi)容:邏輯結(jié)構(gòu),物理存儲(chǔ)結(jié)構(gòu)、算法。通常,算法的設(shè)計(jì)取決于數(shù)據(jù)的邏輯結(jié)構(gòu),算法的實(shí)現(xiàn)取決于數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)。
根據(jù)數(shù)據(jù)元素之間的不同特性,把數(shù)據(jù)結(jié)構(gòu)劃分四種基本結(jié)構(gòu):集合、線型結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)。針對(duì)每種數(shù)據(jù)結(jié)構(gòu)均從邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作運(yùn)算等方面進(jìn)行研究,是數(shù)據(jù)結(jié)構(gòu)研究的共同切入點(diǎn),稱為數(shù)據(jù)結(jié)構(gòu)的“橫向聯(lián)系”。從集合、線型結(jié)構(gòu)等基本數(shù)據(jù)結(jié)構(gòu)入手,以實(shí)現(xiàn)樹形結(jié)構(gòu)、圖或網(wǎng)狀結(jié)構(gòu)等較復(fù)雜結(jié)構(gòu)研究,實(shí)現(xiàn)數(shù)據(jù)元素間的關(guān)系,稱為“縱向聯(lián)系”。
2、數(shù)據(jù)據(jù)結(jié)構(gòu)間的徽向聯(lián)系.邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)、操作運(yùn)算的思想棋式
邏輯結(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è)清晰的探討。
1.集合數(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ǔ)等。
2.線型結(jié)構(gòu)是N個(gè)數(shù)據(jù)元素的有限序列,至于每一個(gè)數(shù)據(jù)元素的具體的含義,在不同的情況下各不相同,其長度可根據(jù)需要增長或縮短,其邏輯結(jié)構(gòu)就是它的數(shù)據(jù)元素間的線形關(guān)系,即一對(duì)一,一個(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)中的指針來表示并且每一個(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)的典型例子。
3.樹型結(jié)構(gòu)是一種重要的非線性結(jié)構(gòu),其中的樹和二叉樹最為常用。
樹是以分支關(guān)系定義的層次結(jié)構(gòu),其邏輯結(jié)構(gòu)是一對(duì)多的關(guān)系,而在三叉樹中是一個(gè)根結(jié)點(diǎn)對(duì)應(yīng)左右兩個(gè)孩子的層次關(guān)系。存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)當(dāng)采取順序存儲(chǔ)時(shí)用一組地址連續(xù)的存儲(chǔ)單元依上而下、自左向右存儲(chǔ)樹中的結(jié)點(diǎn)元素。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中可采用二叉鏈表表示即鏈表中結(jié)點(diǎn)的兩個(gè)鏈域分別指向該結(jié)點(diǎn)的第一個(gè)孩子和下一個(gè)兄弟結(jié)點(diǎn),樹形結(jié)構(gòu)最基本的操作是遍歷。在樹型結(jié)構(gòu)中最有特色的一種數(shù)據(jù)結(jié)構(gòu)就是二叉樹,二叉樹的最基本的操作是遍歷二叉樹,對(duì)每個(gè)結(jié)點(diǎn)的訪問是對(duì)其它復(fù)雜操作的基礎(chǔ)。基于二叉樹的遞歸定義可得到遍歷二叉樹遞歸算法,前序遍歷、中序遍歷、后序遍歷二叉樹。
4.圖狀結(jié)構(gòu)是一種較線型結(jié)構(gòu)和樹更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),圖的邏輯結(jié)構(gòu)是多對(duì)多的關(guān)系即在圖形結(jié)構(gòu)中結(jié)點(diǎn)之間的關(guān)系是任意的。因此在存儲(chǔ)結(jié)構(gòu)中無法以數(shù)據(jù)元素在存儲(chǔ)區(qū)中的物理位置來表示數(shù)據(jù)元素間的關(guān)系。即圖沒有順序映象但可以借助數(shù)組的數(shù)據(jù)類型表示元素之間的關(guān)系,用兩個(gè)數(shù)組分別存儲(chǔ)數(shù)據(jù)元素(頂點(diǎn))的信息和數(shù)據(jù)元素之間的關(guān)系信息。另一方面圖的存儲(chǔ)結(jié)構(gòu)也可由多重鏈表實(shí)現(xiàn),即一個(gè)由一個(gè)數(shù)據(jù)域和多個(gè)指針域組成的結(jié)點(diǎn)來表示圖中的一個(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ǔ),然而圖的遍歷比樹的遍歷復(fù)雜的多,因?yàn)閳D的任一頂點(diǎn)都有可能和其余的頂點(diǎn)相鄰接。所以在訪問某個(gè)頂點(diǎn)之后可能沿著某條路徑搜索之后又回到該頂點(diǎn)上。因此要設(shè)有一個(gè)輔助數(shù)組V[0.. n-1],它的初始值置為假,一旦訪問頂點(diǎn)Vi,便置V[i」為真,這樣避免了同一個(gè)頂點(diǎn)被訪問多次,對(duì)圖的遍歷有深度優(yōu)先搜索和廣度優(yōu)先搜索。圖的深度優(yōu)先搜索遍歷類似樹的先根遍歷,是樹的先根遍歷的推廣,廣度優(yōu)先搜索類似樹的按層次遍歷的過程。
因此無論對(duì)于線型結(jié)構(gòu)、樹性結(jié)構(gòu)、圖結(jié)構(gòu),它們都遵循著邏輯結(jié)構(gòu)的定義、存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)、操作運(yùn)算方法的實(shí)現(xiàn)模式來實(shí)現(xiàn)每種數(shù)據(jù)結(jié)構(gòu)的類型。在數(shù)據(jù)結(jié)構(gòu)中對(duì)每種數(shù)據(jù)結(jié)構(gòu)的研究只有對(duì)它的這三個(gè)方面內(nèi)容的研究,才能對(duì)它進(jìn)行探索、掌握、改進(jìn)。
3、縱向聯(lián)系是由錢和隊(duì)列實(shí)現(xiàn)樹、圖的遍歷
遍歷操作對(duì)樹、圖結(jié)構(gòu)是最基礎(chǔ)、最重要的運(yùn)算,它是實(shí)現(xiàn)一個(gè)數(shù)據(jù)結(jié)構(gòu)的核心部分。雖然根據(jù)樹、圖的遞歸定義能設(shè)計(jì)出樹、圖的遍歷的遞歸算法,但從線型結(jié)構(gòu)到樹、圖的發(fā)展也是數(shù)據(jù)結(jié)構(gòu)從簡單到復(fù)雜的逐步發(fā)展過程。線型結(jié)構(gòu)中棧和隊(duì)列是兩個(gè)非常重要的數(shù)據(jù)結(jié)構(gòu),對(duì)于樹、圖的遍歷可用棧和隊(duì)列來實(shí)現(xiàn),體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)間的“縱向聯(lián)系”,例如:用棧實(shí)現(xiàn)二叉樹的前序遍歷算法:
因?yàn)槎鏄洹D的其它的操作大部分是對(duì)遍歷基本操作的拓展或綜合應(yīng)用,靈活運(yùn)用棧和隊(duì)列可實(shí)現(xiàn),并且算法描述比較直觀。線性結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)學(xué)科的基礎(chǔ),樹、圖的是在線性結(jié)構(gòu)的基礎(chǔ)上發(fā)展,因此樹、圖發(fā)展促進(jìn)著線性結(jié)構(gòu)中和一些算法的完善和改進(jìn),線型結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)是緊密相聯(lián)的。
結(jié)語
邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)、操作運(yùn)算等核心方面是貫穿數(shù)據(jù)結(jié)構(gòu)研究與發(fā)展的一條基本線,也是數(shù)據(jù)結(jié)構(gòu)研究中所看到數(shù)據(jù)結(jié)構(gòu)間的“橫向聯(lián)系”,應(yīng)用基本數(shù)據(jù)結(jié)來實(shí)現(xiàn)復(fù)雜數(shù)據(jù)結(jié)構(gòu)的方法與途徑,這是對(duì)數(shù)據(jù)元素之間關(guān)系從簡單到復(fù)雜的探討,即為“縱向聯(lián)系”。數(shù)據(jù)結(jié)構(gòu)聯(lián)系是對(duì)數(shù)據(jù)結(jié)構(gòu)的整體把握,體現(xiàn)在這種“橫向聯(lián)系”和“縱向聯(lián)系”之中。靈活運(yùn)用與把握這種數(shù)據(jù)結(jié)構(gòu)間的關(guān)系,對(duì)抽象數(shù)據(jù)結(jié)構(gòu)類型的研究有重要的借鑒意義,同時(shí)對(duì)數(shù)據(jù)結(jié)構(gòu)的實(shí)際教學(xué)過程有著一定的指導(dǎo)意義。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.vmgcyvh.cn/
本文標(biāo)題:數(shù)據(jù)結(jié)構(gòu)間的橫向和縱向聯(lián)系
本文網(wǎng)址:http://www.vmgcyvh.cn/html/support/1112156386.html