成都嵌入式學習筆記:數據結構與算法知識點總結

成都嵌入式學習筆記:數據結構與算法知識點總結

在成都嵌入式學習過程中,學會記筆記是一件很重要的事情。今天給大家送上成都嵌入式學習中的一些乾貨知識。華清遠見成都中心某位學長大神總結的數據結構與運算的知識點,不懂的快來看看吧。

成都嵌入式學習筆記:數據結構與算法知識點總結


一、數據結構:研究數據(數據元素)之間的關係。(C研究數值型數據之間的簡單運算, 數據結構 還研究非數值型之間的運算)

1.邏輯結構(關係):集合、線性關係、樹形關係、圖狀關係(線性和非線性關係)

2.物理結構(物理關係):邏輯結構在計算機內存中具體實現的方法,有順序、鏈式、 索引、散列等存儲方法

3.數據運算:對數據進行的操作,增、刪、查、改、排序。

數據即信息的載體。

數據元素是數據的基本單位(又稱記錄,Record),由若干個基本項(or字段、域屬性)組成

數據類型是對數據元素取值範圍與運算的限定


成都嵌入式學習筆記:數據結構與算法知識點總結


相關術語概念:

數據Date 數據類型Date Type 數據元素Date Element

數據結構Date Structure 物理結構(存儲結構)Physical Structure

順序存儲Sequential Storage 鏈式存儲Linked Storage

索引存儲Indexed Storage 散列存儲Hash Storage

形式化語言描述(數學表達式):

DS=(D,R)D數據元素的集合,R D上關係的集合


成都嵌入式學習筆記:數據結構與算法知識點總結


根據數據元素間的關係的基本特性有四種基本數據結構:

集合——數據元素間除“同屬於一個集合”外,無其他關係

線性結構——一個對一個,如線性表、棧、隊列

樹形結構——一個對多個,如樹

圖狀結構——多個對多個,如圖(圖是樹的拓展,可有樹構成)

算法Algorithm一個又窮規則(or語句、指令)的有序集合(對程序的優化,易閱讀、調試、維護)

特性:有窮性、確定性、可行性、輸入(0-n)、輸出(1-n)

程序 = 算法 + 數據結構

算法與程序的區別:

1. 算法與計算機無關,程序依賴於具體的計算機語言

2. 算法重點是在解決問題的思路上

算法分析(好壞):時間複雜度T(n) 空間複雜度D(n)(不考慮,犧牲來成全時間)Time/Space Complexity

語句的頻度:可執行語句程序中重複執行的次數。某語句執行一次耗時t,執行次數f,則該語句總耗時t*f。

量級T(n)=O(n3) 取次數最高的項並去掉係數,作為時間複雜度 。

↑上午 概念

↓下午 線性表 的邏輯和存儲結構、相關算法的實現以及線性表的應用舉例。

線性表Linear List


成都嵌入式學習筆記:數據結構與算法知識點總結


首先創建表,再插入表,再增刪改查,銷燬。

創建:申請一個結構體

方便的查找,在挨著表的末尾空間在申請一個空間用來存放表的有效個數or最後一個元素下標。

創建表 :...待寫

插入數據:1.首先判斷表是否為滿。2.判斷插入的位置是否有效。3.從後往上移動數據元素。 4.插入元素。5.尾指針last+1

刪除數據:1.首先判斷表是否為空。2.判斷刪除的位置是否有效。3.刪除後從前往後移動元 素。4.尾指針last-1。5移動後,之前的最後一個數據,直接忽視不用了,但是 還在。

以上就是大神學長總結的成都嵌入式學習筆記分享,希望對各位在嵌入式的學習中有所幫助。


分享到:


相關文章: