資料結構學習(一)

2021-10-19 14:13:54 字數 2056 閱讀 3352

在生活中很多問題不再是數值計算的數學方程,而是諸如表、樹和圖之類的資料結構。資料結構是數學、演算法和硬體的交集,是一門重要的學科。

資料:所有能輸入到計算機中且能被處理的符號總稱,例如影象、聲音等。

資料元素:是資料的基本單元,例如整型數、字串等;資料項是資料的最小單位。

資料物件:性質相同的資料元素的集合,是資料的子集。

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

線性結構的定義:若結構為非空有限集,只有乙個起點和終端結點,並且所有結點都只有乙個前驅和後繼。線性結構反應結點間的邏輯關係是一對一的。典型的線性結構包括:線性表、堆疊、字串、陣列等。

線性表的定義:用資料元素的有限序列表示:(a1,a2,…ai-1,ai,ai+1,…an)

n為元素個數,即表長,n大於等於0。

n=0時稱為空表

例如:(a,b,c…,z)英文表,或是學生登記**,可以看到這些**中資料元素都是同型別的,且元素間的關係是線性的。

線性表的順序表示又被稱為順序儲存結構或順序映像。

順序儲存定義:把邏輯上相鄰的資料元素儲存在物理相鄰的 儲存單元中的儲存結構。

順序儲存方法:用一組位址連續的儲存單元依次儲存線性表的元素。

順序儲存特點:1.邏輯上相鄰的資料元素其物理上也相鄰;2.若已知表中首元素在儲存器中的位置,則其他元素存放位置也可以求出。

首位置為1時:

loc(ai)=loc(a1)+l*(i-1)

資料結構的基本運算:

修改、插入、刪除、查詢、排序

1.修改通過陣列的下標便可訪問某個特定元素並修改。時間效率為o(1)。

2.插入將第n至第i位的元素向後移動乙個位置;將要插入的元素寫到第i個位置;表長加一;(要注意i的插入是否合法?表是否已滿)。

3.刪除將第i+1至第n位的元素向前移動乙個位置;表長減一;(要注意i的刪除是否合法?表是否已滿)。

時間效率:

t(n)=移動元素的次數(取決於插入或刪除元素的位置)

插入時的平均移動次數為:n(n+1)/2*(n+1)=n/2=o(n)

空間複雜度為o(1),因為沒有占有輔助空間

順序表的儲存結構是一維陣列,如果插入的元素個數超過陣列定義的長度怎麼辦?——採用動態分配的一維陣列。

動態陣列:先為順序表空間設定乙個初始分配量,一旦因插入元素而空間不足時,可為順序表增加乙個固定長度的空間增量。

結點在儲存器中的位置是隨意的,即邏輯上相鄰的資料元素在物理上不一定相鄰。每個儲存結點包括兩個部分:資料域和指標域。

頭指標:指向鍊錶中第乙個結點

頭結點:是在鍊錶的首元結點之前附設的乙個結點;資料域內只放空表標誌和表長等資訊,它不計入長度。

首元結點:鍊錶中儲存線性表第乙個資料元素a1的結點。

資料結構學習(一)

資料結構,是相互之間存在一種或多種特定關係的資料元素的集合,資料結構可以分為邏輯結構和物理結構 邏輯結構 是指資料物件中資料元素之間的相互關係 1.集合結構 集合結構中的資料元素除了屬於同乙個集合外,沒有任何關係 2.線性結構 線性結構中的資料元素是一對一的結構關係 3.樹形結構 樹形結構的資料元素...

資料結構學習 一

資料機構在大學也斷斷續續學過一些,不過到工作時候已經忘了很多,現在想著再重頭學一遍,應該也是為時不晚。資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作相關的學科。用自己的理解的話來說就是演算法的模型。程式 資料結構 演算法 邏輯結構 資料物件中資料元素之間的相互關係。...

資料結構學習 一

學習的四大步驟 wwwa 1.什麼是a what 2.為什麼需要a why 3.怎麼用a how 4.需要注意的問題 attention 我們知道程式 資料結構 演算法,可見資料結構的重要性。在平時我們建立的乙個陣列以及對陣列的新增刪除操作都屬於資料結構的範疇。那麼,什麼是資料結構呢?定義 我們如何...