資料結構與演算法入門(1)

2021-08-25 09:00:36 字數 1200 閱讀 6649

一、資料結構

資料之間相互存在的一種或多種特定的關係的元素的集合。

邏輯結構

資料物件中資料元素之間的相互關係

1.集合結構

在資料結構中,如果不考慮資料元素之間的關係,這種結構稱為集合結構。

各個元素是平等的,共同屬性是屬於同乙個集合

2.線性結構

線性結構中的資料元素之間存在乙個對應乙個的關係,除了第乙個資料元素沒有前驅,最後乙個元素沒有後繼,其他元素都有唯一的前驅和後繼。

3.樹形結構

樹狀結構中的資料元素之間存在著乙個對應多個的關係。資料元素之間存在著層次關係,除了乙個特殊的稱為樹根的元素無前驅,其他資料元素都有唯一前驅。

4.圖形結構

圖狀結構中的資料元素之間存在多個對應多個的關係,也就是任一資料元素可能有多個前驅和後繼。

物理結構(儲存結構)

1.順序儲存結構(特徵:美女來插隊)

2.鏈式儲存結構(對不起,我是警察,排隊)

抽象資料結構

資料型別:一組性質相同的值的集合及定義在此集合上的一些操作的總稱

抽象資料型別:乙個數字模型及定義在該模型上的一組操作

二、線性表

a1是a2的前驅,ai+1 是ai的後繼,a1沒有前驅,an沒有後繼

nn為線性表的長度 ,若n==0時,線性表為空表

順序儲存方式線性表

儲存位置連續,可以很方便計算各個元素的位址

如每個元素佔c個儲存單元,那麼有:

loc(an) = loc(an-1) + c,於是有:

loc(an) = loc(a1)+(i-1)*c;

優點:查詢快

缺點:插入、刪除效率慢

鏈式儲存方式線性表

線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素,這組儲存單元可以是連續的,也可以是不連續的

為了表示每個資料元素ai與其直接後繼資料元素ai+1之間的邏輯關係,對資料元素ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊

優:刪除還插入效率高

缺:查詢效率低

迴圈鍊錶

將單鏈表中終端結點的指標端由空指標改為指向頭結點,就使整個單鏈表形成乙個環,這種頭尾相連的單鏈表稱為單迴圈鍊錶,簡稱迴圈鍊錶

雙向迴圈鍊錶

雙向迴圈鍊錶是單向迴圈鍊錶的每個結點中,再設定乙個指向其前驅結點的指標域

資料結構與演算法入門

1.描述乙個演算法優劣用計算次數的 數量級。1m 1g 1t。與問題相關的規模用n t n n 2 n 3 2.常見的時間複雜度 用大o表示法表示 常數階 o 1 線性階 o n 平方階 o n 2 對數階 o logn nlogn階 o nlogn 立方階 o n 3 指數階 o 2 n o 1 ...

資料結構與演算法入門 資料結構型別

資料的邏輯結構 資料的邏輯結構指資料元素之間的邏輯哦關係 和實現無關 分類一 線性結構和非線性結構 線性結構 有且只有乙個開始結點和乙個終端節點,並且所有節點都最多只有乙個直接前繼和乙個直接後繼。線性表就是乙個典型的線性結構,它有四個基本特徵 1.集合中必存在唯一的乙個 第乙個元素 2.集合中必存在...

資料結構與演算法(1)

演算法 資料結構 一 演算法 1.演算法的幾個特徵是什麼。2.演算法複雜性的定義。大o 小o分別表示的含義。3.遞迴演算法的定義 遞迴演算法的兩要素。4.分治演算法的思想,經典的分治演算法 全排列 二分搜尋 歸併排序 快速排序 線性時間選擇 最接近點對問題 5.動態規劃演算法解題框架,動態規劃演算法...