溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)結(jié)構(gòu)是什么

發(fā)布時(shí)間:2020-09-24 11:23:58 來源:億速云 閱讀:141 作者:Leah 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)數(shù)據(jù)結(jié)構(gòu)是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、什么是數(shù)據(jù)結(jié)構(gòu)

1、數(shù)據(jù)結(jié)構(gòu)的定義

數(shù)據(jù):從計(jì)算機(jī)的角度來看,數(shù)據(jù)是所有能被輸入到計(jì)算機(jī)中且能被計(jì)算機(jī)處理的符號(hào)的集合。它是計(jì)算機(jī)操作的對(duì)象的總稱,也是計(jì)算機(jī)處理信息的某種特定的符號(hào)表示形式(二進(jìn)制碼的抽象表示?)。

數(shù)據(jù)元素:數(shù)據(jù)元素是數(shù)據(jù)中的一個(gè)個(gè)體,是數(shù)據(jù)的基本單位,在計(jì)算機(jī)中通常作為一個(gè)整體來進(jìn)行考慮和處理。

數(shù)據(jù)項(xiàng):一個(gè)數(shù)據(jù)元素可以由多個(gè)數(shù)據(jù)項(xiàng)組成。數(shù)據(jù)項(xiàng)是具有獨(dú)立含義的數(shù)據(jù)最小單位。

數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)項(xiàng)這三個(gè)的關(guān)系類似表、元組、屬性之間的關(guān)系,不過表、元組、屬性之間具有確定的關(guān)系,而數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)項(xiàng)之間只有層次關(guān)系而沒有具體的關(guān)系。

數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)以及數(shù)據(jù)相互之間的聯(lián)系,可以看成是相互之間具有某種特定關(guān)系的數(shù)據(jù)元素的集合,因此,可以把數(shù)據(jù)結(jié)構(gòu)看成是帶結(jié)構(gòu)的數(shù)據(jù)元素的集合。

數(shù)據(jù)結(jié)構(gòu)包含以下幾個(gè)方面:

數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu)。

數(shù)據(jù)元素及其關(guān)系在計(jì)算機(jī)存儲(chǔ)器中的存儲(chǔ)方式,即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也稱為數(shù)據(jù)的物理結(jié)構(gòu)。

施加在該數(shù)據(jù)上的操作,即數(shù)據(jù)的運(yùn)算。

所以數(shù)據(jù)結(jié)構(gòu)由三個(gè)部分組成:邏輯結(jié)構(gòu)、物理結(jié)構(gòu)、運(yùn)算。

數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯關(guān)系上描述數(shù)據(jù)(主要是相鄰關(guān)系,比如棧、隊(duì)列、鏈表等),它與數(shù)據(jù)的存儲(chǔ)無關(guān),是獨(dú)立于計(jì)算機(jī)的。因此,數(shù)據(jù)結(jié)構(gòu)可以看作從具體問題中抽象出來的數(shù)學(xué)模型。

數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是邏輯結(jié)構(gòu)用計(jì)算機(jī)語(yǔ)言的實(shí)現(xiàn)(邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)中的映像),它是依賴于計(jì)算機(jī)語(yǔ)言的。

數(shù)據(jù)的運(yùn)算是定義在數(shù)據(jù)的邏輯結(jié)構(gòu)上的,每種邏輯結(jié)構(gòu)都有一組相應(yīng)的運(yùn)算。最常用的運(yùn)算有:檢索(查找)、插入、刪除、更新、排序等。

對(duì)于一種數(shù)據(jù)結(jié)構(gòu),其邏輯結(jié)構(gòu)總是唯一的,但它可以對(duì)應(yīng)多種存儲(chǔ)結(jié)構(gòu),并且在不同的存儲(chǔ)結(jié)構(gòu)中,同一運(yùn)算的實(shí)現(xiàn)過程可能不同。

2、邏輯結(jié)構(gòu)類型

在不產(chǎn)生混淆的情況下,通常將邏輯結(jié)構(gòu)簡(jiǎn)稱為數(shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)的邏輯結(jié)構(gòu)主要有以下幾類:

集合:集合中的元素相互獨(dú)立,除了同屬于一個(gè)集合之外,別無其他關(guān)系。(集合中的元素不能重復(fù))

線性結(jié)構(gòu):線性結(jié)構(gòu)中的節(jié)點(diǎn)具有一對(duì)一的關(guān)系,其特點(diǎn)是開始節(jié)點(diǎn)和終端節(jié)點(diǎn)都是唯一的,除開始節(jié)點(diǎn)和終端節(jié)點(diǎn)之外,其余節(jié)點(diǎn)有且僅有一個(gè)前驅(qū),有且僅有一個(gè)后繼。

樹形結(jié)構(gòu):樹形結(jié)構(gòu)中的節(jié)點(diǎn)具有一對(duì)多的關(guān)系,其特點(diǎn)是每個(gè)節(jié)點(diǎn)最多只有一個(gè)前驅(qū),但可以有多個(gè)后繼,可以有多個(gè)終端節(jié)點(diǎn)。

圖形結(jié)構(gòu):圖形結(jié)構(gòu)中的節(jié)點(diǎn)具有多對(duì)多的關(guān)系,其特點(diǎn)是每個(gè)節(jié)點(diǎn)的前驅(qū)和后繼的數(shù)量都可以是任意的。

3、存儲(chǔ)結(jié)構(gòu)類型

順序存儲(chǔ)方法:把邏輯上相鄰的節(jié)點(diǎn)存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里,節(jié)點(diǎn)之間的邏輯關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來體現(xiàn)。

優(yōu)點(diǎn):節(jié)省存儲(chǔ)空間,可以實(shí)現(xiàn)節(jié)點(diǎn)的隨機(jī)存?。總€(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)序號(hào),由該序號(hào)可直接確定節(jié)點(diǎn)的存儲(chǔ)地址)

缺點(diǎn):不便于修改(在對(duì)節(jié)點(diǎn)進(jìn)行插入、刪除的操作時(shí),可能要移動(dòng)一系列的節(jié)點(diǎn))。

鏈?zhǔn)酱鎯?chǔ)方法:該方法不需要邏輯上相鄰的節(jié)點(diǎn)在物理位置上也相鄰,節(jié)點(diǎn)之間的邏輯關(guān)系由附加的指針字段表示。

優(yōu)點(diǎn):便于修改(在進(jìn)行插入、刪除操作時(shí),只需要修改對(duì)應(yīng)節(jié)點(diǎn)的指針域,不必移動(dòng)節(jié)點(diǎn))。

缺點(diǎn):存儲(chǔ)空間利用率較低(有一部分空間用來存儲(chǔ)節(jié)點(diǎn)之間的邏輯關(guān)系了),不能進(jìn)行隨機(jī)存?。ㄒ?yàn)檫壿嬌舷噜彽墓?jié)點(diǎn)在物理位置上不一定相鄰)。

索引存儲(chǔ)方法:該方法通常在存儲(chǔ)節(jié)點(diǎn)信息的同時(shí),還建立附加的索引表。索引表中的每一項(xiàng)稱為索引項(xiàng),索引項(xiàng)的一般形式是:(關(guān)鍵字,地址),其中關(guān)鍵字唯一標(biāo)識(shí)一個(gè)節(jié)點(diǎn),地址則是指向該節(jié)點(diǎn)的指針。

優(yōu)點(diǎn):支持隨機(jī)訪問(因?yàn)樗饕硎琼樞虼鎯?chǔ)的,類似于 C語(yǔ)言中的指針數(shù)組),具有較高的數(shù)據(jù)修改運(yùn)算效率。

缺點(diǎn):索引存儲(chǔ)的方法增加了索引表,降低了存儲(chǔ)空間的利用率。

哈希(或散列)存儲(chǔ)方法:該方法根據(jù)節(jié)點(diǎn)的關(guān)鍵字通過哈希(或散列)函數(shù)直接計(jì)算出一個(gè)值,并將這個(gè)值作為該節(jié)點(diǎn)的存儲(chǔ)地址。

優(yōu)點(diǎn):哈希存儲(chǔ)方法的優(yōu)點(diǎn)就是查找數(shù)據(jù)快,只要給出要查找節(jié)點(diǎn)的關(guān)鍵字,就可以立即計(jì)算出對(duì)應(yīng)節(jié)點(diǎn)的存儲(chǔ)地址。

缺點(diǎn):哈希存儲(chǔ)方法只存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù),不存儲(chǔ)節(jié)點(diǎn)之間的邏輯關(guān)系。所以哈希存儲(chǔ)方法一般只適合要求能夠快速查找和插入的場(chǎng)合。

上面基本的存儲(chǔ)方法,既可以單獨(dú)使用,也可以組合起來使用。同一種邏輯結(jié)構(gòu)采用不同的存儲(chǔ)方法,可以得到不同的存儲(chǔ)結(jié)構(gòu)。選擇何種存儲(chǔ)結(jié)構(gòu),主要根據(jù)運(yùn)算方便和算法的時(shí)空要求來決定。

看完上述內(nèi)容,你們對(duì)數(shù)據(jù)結(jié)構(gòu)是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI