資料結構複習(1)

2021-09-01 17:25:00 字數 1335 閱讀 1893

1.***程式=演算法+資料結構

2.演算法的五個特性:有窮性,確定性,可行性,輸入,輸出

衡量乙個演算法要從『正確性』,『可讀性』,『健壯性』,『效率與低儲存量需求』來考慮

3.時間複雜度與空間複雜度直觀的反映了優劣,不同的演算法可以實現相同的功能我們可以用時間複雜度來衡量乙個演算法的好壞,常見的1(輸入輸出),n(迴圈),log以2為底的n次方(最小二乘法)。。

4.線性表與線性鍊錶,這其實反映了兩種最常見的儲存方式,順序儲存與鏈式儲存,這兩種方法各有好壞,順序儲存更直觀乙個挨著乙個儲存密度大,儲存空間利用率高,便於隨機儲存,但是在常用的增刪卻非常無力(經計算每次增刪都要移動表中一半元素,若表很大,損耗的時間和占用的cup都很浪費資源),鏈式儲存為元素增加了指標域,我們可以通過修改指標來修改資料,很像有邊角的積木將兩個積木拆開將第三塊放在中間就變成了新的積木,但這樣做有每個資料都分出自己的空間給指標域,資料增多問題就會凸顯出來,俗話說三百六十行行行出狀元,沒有好不好嗎,只有你會不會用

5.迴圈鍊錶與雙向鍊錶,由於使用了指標我們可以不用考慮資料的物理位置,頭尾指標的靈活運用可以產生變種的鍊錶,應用與靈活的地方

6.棧:棧1是一種十分重要的資料結構,最基本的特性先進後出,它應用與各個程式中,函式呼叫就遵守先呼叫後返回的原則,正在執行的函式必須在資料區的棧頂

7.佇列:佇列與棧相反有著先進先出的原則,在生活中也很常見佇列中,允許插入的是隊尾,允許刪除的是對頭,用鍊錶表示的佇列是鏈佇列。需要注意的是佇列的在佇列的順序儲存中會出現對頭指標隨著資料增刪發生改變的情況,導致對頭指標上公升(佇列中有很大空間確無法儲存元素),我們將佇列臆想成乙個噬身蛇形狀(環)佇列就自然呈現出空的形狀,

8.串:串是十分常見的資料物件,在多數非數值處理中串也以變數的形式出現,串內有三種機制:定長順序儲存(如同順序儲存,以一組位址連續的儲存單元存放串字元數列,獨特的事先給定長度,多餘的部分會被擷取掉)。堆分配(仍是以一組位址連續的儲存單元存放串字元數列,但使用了堆(自由儲存區)來進行管理,這也是基於字串的複製進行的,優點是對串長沒有限制)。串的塊鏈儲存,這裡涉及到了串的儲存密度=串值所佔儲存位/實際分配儲存位這個公式,串的節點大小不同儲存的資料量也不同,乙個節點乙個也可以儲存多個也可能只儲存乙個

9!!!字串的匹配演算法(查詢):基本思想:從主串s的第pos個字元起和模式的第乙個字元比較,若相等則逐個比較後面字元否則從主串下乙個字元再重新和模式的字元比較,若模式t的每個字元一次與主串s的連續字串行相等稱之匹配成功(只是一種效率低下的基本思想)。

kmp演算法:思想,每次匹配不成功的時候不進行指標的回溯,而是利用已經得到的部分匹配結果將模式盡量向後『滑動『盡可能遠的位置,來避免無用的操作浪費提高效率,求next值:前兩位是01這是固定的,從第三位開始找前一位,前兩位,等等與前面相同的部分的長度+1為自己的next值

資料結構複習 1

資料結構的基本概念 資料 資料是資訊的載體,是描述客觀事物的數,字元以及所有能輸入到計算機中並被電腦程式識別和處理的符號的集合。資料是電腦程式加工的原料。資料元素 資料元素是資料的基本單位,通常作為乙個整體進行考慮和處理。乙個資料元素可由若干資料項組成,資料項是構成資料元素的不可分割的最小單位 例如...

資料結構複習筆記 1

為什麼要學習資料結構?看圖就能明白了!資料結構是什麼?資料結構課程體系 資料結構課程集中討論軟體開發過程中的設計階段 同時設計編碼和分析階段的若干基本問題。此外,為了構造出好的資料結構及其實現,還需考慮資料結構及其實現的評價與選擇。因此,資料結構的內容包括三個層次的五個 要素 如圖1.5 所示。資料...

資料結構複習小記1

資料元素是資料的基本單位 資料項是資料不可分割的最小單位。資料結構的基本結構 集合,線性結構,樹形結構,圖 網 狀結構 邏輯結構 抽象的,與現實無關 物理結構 儲存結構 順序儲存結構 位置相鄰 鏈式儲存結構 指標表示關係 資料型別 抽象資料型別 adt 資料物件,資料關係,基本操作 演算法的特徵 有...