資料結構 概念總結

2022-07-24 10:36:14 字數 2739 閱讀 9337

data structures + algorithms = programs

資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合

集合結構,線性結構,樹形結構,圖結構。

順序儲存結構和鏈式儲存結構.

資料結構在計算機專業課程體系中起到承上啟下的作業,熟練使用資料結構可以使程式執行的更快更流暢

思維導圖:

對特定問題求解步驟的一種描述,它是指令的特定序列,每一條指令表示乙個或多個操作

有窮性,確定性,可行性,輸入,輸出。

自然語言,流程圖,程式語言,偽**。

(1)演算法設計的目標:

正確性,可使用性,可讀性,健壯性,時間效率高與儲存量低

(2)兩種衡量演算法效率的方法:

事後統計法(把程式跑一遍):

必須執行程式,且存在其他因素掩蓋演算法本質

演算法執行時間=基本運算時間*運算次數

基本運算:被視為算術運算的一般是最深層迴圈內語句

(3)演算法效率分析:

演算法的執行時間可由其基本運算的執行次數來計算

時間複雜度:記號"o",表示隨問題規模n增大,演算法執行時間的增長率和f(n)的增長率相同。

通常情況下,鑑於運算空間較為充足,常以演算法的時間複雜度作為演算法優劣的衡量指標

常數階:o(1):基本運算次數與問題規模無關。注意:o(1)不代表1次運算

常用的演算法時間複雜度的關係:o(1)2)3)

演算法的漸進時間複雜度是指:隨著問題規模的增大,演算法執行時間的增長趨勢

(4)演算法儲存空間分析:

空間複雜度:演算法在執行過程中臨時占用的空間的度量,一般也是問題規模n的函式s(n)=o(g(n)).

演算法的時間複雜度和空間複雜度相互影響,好的時間複雜度可能會導致占用較多的儲存空間。

思維導圖:

線性表是最簡單,最常用的線性結構,線性結構是乙個資料元素的有序關係

定義:具有相同特性的資料元素的乙個有限序列

初始化initlist(&l),銷毀destroylist(&l),判斷是否為空listempty(l),輸出dislist(l),返回l中元素的個數listlength(l)

使用一塊位址連續的儲存空間,按照線性表中元素的邏輯順序依次存放相應元素

特點:邏輯上相鄰以及實體地址相鄰,實現隨機儲存。

順序表的基本操作:

初始化,銷毀,獲取元素,查詢,插入,刪除

特點:線性表中的資料元素存放在一組位址任意的儲存節點,節點之間用鏈進行連線

結構:節點= 資料元素 + 指標

頭指標:

指向線性表的第乙個元素,有時為了簡化插入和刪除操作,需要在第乙個節點之前設定乙個頭節點

儲存密度

儲存密度=資料所佔空間/節點所佔空間 (因此鍊錶的儲存密度不高,比起順序表來說儲存空間的利用率比較低)

鏈式表的基本操作:

初始化,銷毀,判斷是否為空表,輸出,插入,刪除,建立單鏈表:頭插法和尾插法

思維導圖:

(1)基本概念:

(2)特性:

lifo:後進先出;具有線性關係

(3)儲存結構:

順序儲存結構和鏈式儲存結構;

(4)儲存內容:

棧中元素和指示棧頂的標記

(5)進棧和出棧可以穿插進行(1)基本概念:

(2)特性:

fifo:後進先出;具有線性關係

(3)儲存結構:

順序儲存結構和鏈式儲存結構;

(4)入隊和出隊可以穿插進行

(5)問題:「假溢位」-隊伍為「滿」,實際為空。解決方法:採用迴圈佇列

棧和佇列都是操作受限制的線性表。

思維導圖:

(1)基本概念:

是由0個或者多個字元組成的有限序列,是資料元素為單個字元的特殊線性表

(2)串與線性表的不同之處:

處理的資料型別不同:

串僅僅處理字元型別,線性表處理任何資料型別。

基本操作針對的型別不同:

線性表的基本操作中,大多以「單個元素」作為操作物件,而串大多以「串的整體「作為操作整體

(3)儲存結構:

1.順序儲存結構:串中字元被依次存放在一組連續的儲存單元中

兩種順序儲存方式:

非緊縮格式:1個記憶體單元存1個字元

緊縮格式 :1個記憶體單元存放多個字元

2.鏈式儲存結構:鏈式串中的乙個節點可以儲存乙個或多個字元

在鏈式串中,基本操作的實現大多利用尾插法,建立返回的結果串

(3)兩種演算法:bf演算法和kmp演算法

思維導圖:

資料結構概念總結

基本概念 資料 能被輸入到計算機中,且能被計算機處理的符號的集合 資料元素 資料集合中的乙個個體。資料項 資料的不可分割的最小單位。資料型別 在一種程式語言中,變數所具有的資料種類。邏輯結構 資料之間的相互關係。儲存結構 資料在計算機中的表示。演算法五個特性 有窮性 確定性 可行性 輸入 輸出。演算...

資料結構及概念分析總結

作為計算機專業的人,如果出去跟別人說自己不懂資料結構,那就是天大的笑話了,資料結構 演算法 程式設計,這是計算機屆公認的理論了,無論我們在做專案時,還是參加各種比賽,乃至於我們參加工作招聘,資料結構都是至關重要的,有時你甚至可以不懂計算機語言,但是不能不懂資料結構,通過上次的華為面試,我發現自己在資...

資料結構概念

資料結構概念 資料結構包含資料和結構,通俗一點就是將資料按照一定的結構組合起來,不同的組合方式會有不同的效率,使用不同的場景,如此而已。比如我們最常用的陣列,就是一種資料結構,有獨特的承載資料的方式,按順序排列,其特點就是你可以根據下標快速查詢元素,但是因為在陣列中插入和刪除元素會有其它元素較大幅度...