小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 Coder編程 2022-12-12 發(fā)布于北京

一、前言

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

N. Wirth早在20世紀(jì)70年代就指出“程序=數(shù)據(jù)結(jié)構(gòu)+算法”。數(shù)據(jù)結(jié)構(gòu)主要研究數(shù)據(jù)在計算機(jī)中存儲、組織、傳遞和轉(zhuǎn)換的過程以及方法,這些也是構(gòu)成與支撐算法的基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)主要討論數(shù)據(jù)的邏輯結(jié)構(gòu)、在計算機(jī)中的存儲結(jié)構(gòu)以及對其進(jìn)行的各種處理運算的方法和算法。

1.2、為什么要學(xué)數(shù)據(jù)結(jié)構(gòu)?

如何有效地組織數(shù)據(jù)和處理數(shù)據(jù)是軟件設(shè)計的基本內(nèi)容,直接關(guān)系軟件的運行效率和工程化程度。數(shù)據(jù)結(jié)構(gòu)是軟件設(shè)計的重要理論和實踐基礎(chǔ)。

早期計算機(jī)處理的對象多為簡單的數(shù)值數(shù)據(jù),而現(xiàn)在,隨著計算機(jī)和信息技術(shù)的飛速發(fā)展,計算機(jī)應(yīng)用遠(yuǎn)遠(yuǎn)超出了單純進(jìn)行數(shù)值計算的范疇。處理非數(shù)值計算性問題占用了90%以上的機(jī)器時間,設(shè)計了更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)元素間的互相關(guān)系。

主要有以下3個步驟:

  1. 抽象求解問題中需處理的數(shù)據(jù)對象的邏輯結(jié)構(gòu);
  2. 根據(jù)求解問題需要完成的功能特性實現(xiàn)存儲結(jié)構(gòu)表述;
  3. 確定為求解問題而需要進(jìn)行的操作或運算。

二、基本概念

2.1、數(shù)據(jù)

數(shù)據(jù)是信息的載體,是計算機(jī)程序處理對象的集合,也是計算機(jī)處理信息的某種特定符號化表示形式,除了整數(shù)、實數(shù)等數(shù)值數(shù)據(jù)外,還包括字符串等非數(shù)值數(shù)據(jù)以及圖形、圖像、音頻和視頻等媒體數(shù)據(jù)

2.2、數(shù)據(jù)項

數(shù)據(jù)項是具有獨立含義、數(shù)據(jù)不可分割的最小標(biāo)識單位,是數(shù)據(jù)元素的組成部分,也可稱之為字段和域。

下面是小說類書籍,其中“書名”和“出版社”就是數(shù)據(jù)項(字段或域)。

書名 出版社
此時不必問去哪里 山東文藝出版社
街頭日記 南海出版公司
普通婚姻 上海人民出版社

2.3、數(shù)據(jù)元素

數(shù)據(jù)元素是數(shù)據(jù)的基本單位,又可稱之為元素、節(jié)點,是一個數(shù)據(jù)整體中可以表示和訪問的數(shù)據(jù)單元。

"小說類書籍"就是數(shù)據(jù)元素,是數(shù)據(jù)項的集合。

2.4、數(shù)據(jù)對象

數(shù)據(jù)對象是性質(zhì)相同的數(shù)據(jù)元素的集合,也叫數(shù)據(jù)元素類。

比如生活類書籍、科技類書籍、小說類書籍,每一種類型的書籍的總和都是性質(zhì)相同的數(shù)據(jù)元素的集合(數(shù)據(jù)對象)。

三、數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是相互之間存在著一種或者多種關(guān)系的數(shù)據(jù)元素的集合,數(shù)據(jù)結(jié)構(gòu)概念包含3個方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)和數(shù)據(jù)的操作。

3.1、邏輯結(jié)構(gòu)

數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間存在的邏輯關(guān)系。數(shù)據(jù)的邏輯結(jié)構(gòu)與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān),獨立于計算機(jī),是從具體問題抽象出來的數(shù)學(xué)模型。

集合

集合中數(shù)據(jù)元素的關(guān)系極為松散,關(guān)系為“屬于同一個集合”。

比如下圖中有三個數(shù)據(jù)元素:databseTheory(數(shù)據(jù)庫原理)、databaseStructure(數(shù)據(jù)結(jié)構(gòu))和wxApplets(微信小程序開發(fā)),它們的性質(zhì)都是教育類的書籍,而它們之間的關(guān)系極為松散,因此屬于集合類型的邏輯結(jié)構(gòu)。

線性結(jié)構(gòu)

線性結(jié)構(gòu)是數(shù)據(jù)元素中具有線性關(guān)系的數(shù)據(jù)結(jié)構(gòu),線性結(jié)構(gòu)中的節(jié)點存在“一對一”的關(guān)系。開始節(jié)點和終端節(jié)點都是唯一的,除開始和終端結(jié)點外,每個節(jié)點有且僅有一個前驅(qū)節(jié)點和一個后繼節(jié)點。

比如下圖的字母表,a是開始節(jié)點,e是終端節(jié)點,而a與e兩個節(jié)點之間都有一個前驅(qū)節(jié)點和后驅(qū)節(jié)點。對于c節(jié)點來說,b是c的前驅(qū)節(jié)點,d是c的后驅(qū)節(jié)點。并且,b與c是一對一的關(guān)系,d與c也是一對一的關(guān)系。

樹形結(jié)構(gòu)

樹形結(jié)構(gòu)是數(shù)據(jù)元素之間具有層次關(guān)系的一種非線性結(jié)構(gòu),樹形結(jié)構(gòu)中的節(jié)點存在“一對多”的關(guān)系。除根節(jié)點外,每個節(jié)點有且僅有一個前驅(qū)節(jié)點,所有節(jié)點可以有零個或多個后驅(qū)節(jié)點。

比如下圖的文件系統(tǒng)的組織方式,C盤是該結(jié)構(gòu)的根節(jié)點,有且僅有一個根節(jié)點。文件夾1有3個后驅(qū)節(jié)點,而文件夾3沒有后驅(qū)節(jié)點。

圖形結(jié)構(gòu)

圖形結(jié)構(gòu)是一種非線性結(jié)構(gòu),圖形結(jié)構(gòu)中的節(jié)點存在“多對多”的關(guān)系,所有的節(jié)點都可以有多個前驅(qū)結(jié)點和后驅(qū)節(jié)點。


數(shù)據(jù)的邏輯結(jié)構(gòu)涉及兩個方面的內(nèi)容,一是數(shù)據(jù)元素,二是數(shù)據(jù)元素之間的邏輯關(guān)系。

以二元組來定義數(shù)據(jù)的邏輯結(jié)構(gòu):logica structure = (D, R),D表示數(shù)據(jù)元素,R表示數(shù)據(jù)元素之間的關(guān)系

比如D={1,2,3,4,5,6,7},R={[1,2], [1,3], [3,4], [2,5], [3,6], [2,7]}

用圖來表示數(shù)據(jù)元素之間的邏輯關(guān)系:

1是2的前驅(qū)元素,2是1的后繼(驅(qū))元素。

3.2、存儲結(jié)構(gòu)

邏輯結(jié)構(gòu)在計算機(jī)中的存儲表示或?qū)崿F(xiàn)叫數(shù)據(jù)的存儲結(jié)構(gòu),也叫物理結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)從邏輯關(guān)系角度觀察數(shù)據(jù),與數(shù)據(jù)的存儲無關(guān)系,是獨立于計算機(jī)的;而數(shù)據(jù)的存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在計算機(jī)中的實現(xiàn),依賴于計算機(jī)。

例子一:所有年級的所有班如何用表示班與班之間的關(guān)系,如:一年級一班、一年級二班、一年級三班屬于一年級;二年級一班、二年級二班屬于二年級。這是以邏輯層面(角度)去觀察數(shù)據(jù)元素之間的關(guān)系。

例子二:分別設(shè)計班級表和學(xué)生表,兩張表的邏輯結(jié)構(gòu)是學(xué)生表屬于班級表。數(shù)據(jù)存儲在各自的表中就是存儲結(jié)構(gòu)。

順序存儲結(jié)構(gòu)

物理位置相鄰的元素在邏輯上也相鄰,每個元素(數(shù)據(jù)元素)與其前驅(qū)元素和后繼元素的存儲位置相鄰,數(shù)組就是順序存儲結(jié)構(gòu)。

鏈?zhǔn)酱鎯Y(jié)構(gòu)

索引存儲結(jié)構(gòu)

散列存儲結(jié)構(gòu)

3.3、數(shù)據(jù)操作

數(shù)據(jù)操作是指對數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素進(jìn)行運算或處理,每種邏輯結(jié)構(gòu)都需要一組對其數(shù)據(jù)元素進(jìn)行處理一實現(xiàn)特定功能的操作,如插入、刪除、更新等。數(shù)據(jù)操作的實現(xiàn)依賴于數(shù)據(jù)的存儲結(jié)構(gòu)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多