考研系列之資料結構 資料結構概述

2021-06-22 06:37:54 字數 2008 閱讀 3479

表示法:

(d,s,p)

d:資料物件

s:d上的關係集

p:對d的基本操作集

adt格式

adt 抽象資料型別名adt 抽象資料型別名

基本操作的格式:

基本操作名(參數列)

初始條件:《初始條件描述》

操作結構:《操作結果描述》

原子型別的值是不能分解的,如c中基本資料型別

結構型別的值是可分解的,是由結構型別和原子型別聚合成的

而結構型別中按照值的成分是不是可變又分成:固定聚合型別&可變聚合型別

固定聚合型別如複數,它是由兩個實數組成

可變聚合型別如字串,它是由n個char型別字元組成

順序映像就如同陣列,是一塊連續的空間,由頭指標和尾指標就可以指定這段空間

非順序映像如同鍊錶,是n塊不連續空間,每塊空間有乙個指標指向下乙個空間(也有雙向指標)

首先,我們看看什麼是前驅後繼

前驅:某資料元素在此資料型別中的上乙個資料元素

後繼:

某資料元素在此資料型別中的下乙個資料元素

如果乙個資料型別中所有資料元素沒有前驅也沒有後繼,那麼每個元素之間就沒沒有關聯,這種結構稱之為集合;

如果每個元素都有乙個前驅和乙個後繼(其實這麼說不對,因為第乙個元素沒有前驅,最後乙個元素沒有後繼),那麼他們就形成了乙個線性的結構,稱之為線性表

再如果每個元素都有乙個前驅,但是有多個後繼(這麼說也不對,因為第乙個元素是沒有前驅,而葉子節點是沒有後繼),那麼他們就成了乙個樹

最後,n個前驅n個後繼的話,就形成了圖。

我們的資料結構主要就是以前驅後繼的形式去分類學習的,再輔以順序映像和非順序映像的表示就衍生了更多的資料結構,這個接下來會逐步講述。

演算法是對特定問題求解的步驟的描述是指令的有限序列

[1] 有窮性

兩點含義:

(1) 演算法必須是在有窮步後結束,如無限迴圈就不是有窮的。

(2) 每步演算法必須是在有窮時間內完成

[2] 確定性

兩點含義:

(1) 每一條指令都不能有二義性

(2) 相同的輸入只能有相同的輸出

[3] 可行性

演算法中描述的操作都能通過有限次基本運算實現

[4] 輸入

乙個演算法有0個以上輸入

[5] 輸出

乙個演算法有1個以上輸出

[1] 正確性

四個層次:

a.不含語法錯誤

b.對於幾組輸入的輸出正確

c.程式對於精心選擇的輸入能得出正確的輸出

d.程式對於一切合法輸入都有正確的輸出

[2] 可讀性

演算法**可被人閱讀

[3] 健壯性

**在面對異常時處理

[4] 效率與低儲存量需求

演算法的時間和空間代價

演算法的效率從耗費的時間和空間上劃分:

[1] 時間複雜度

時間複雜度一般使用大o表示法,它表示演算法的時間效率的下限,按照函式增長趨勢又分為常量階、線性階、平方階、對數階、指數階(演算法的效率逐漸降低,複雜度逐漸公升高)。

[2] 空間複雜度

指的是演算法執行期間占用的記憶體大小,一般也用大o表示法表示最差情況。

資料結構小白系列之資料結構概述

資料結構,是資料的組織形式,包括資料元素本身以及資料元素之間的關係,公式可表示為data structure 其中d表示資料,r表示關係。資料結構具有邏輯結構和物理結構。邏輯結構是資料和資料之間的邏輯關係,實際就是它們之間的位置關係。比如資料a和資料b,資料a和資料b是相鄰著儲存著,資料a儲存在資料...

考研系列之資料結構 線性表概述

1.腦圖 2.表示方法 按照資料結構概述所說,線性表有兩種表示方法分別是順序表示和鏈式表示,鍊錶就是鏈式表示的典型。我們知道鏈式表示是分配了n塊記憶體空間,可以認為彼此不連續,所以不能用偏移量去定位每個元素。下面就先說最簡單的 單向鍊錶 如果每個資料元素能有乙個指標指向下乙個元素的話,那麼只需要知道...

考研資料結構

一 考研中的變數型別 1 基本型別 int float char 2 指標型別 3 結構體型 陣列,結構體 4 void型 考研中 定義無返回值函式。二 控制語句 1 判斷語句if 做決策 2 迴圈語句 做重複的事 for while 講講break與continue break結束整個迴圈 con...