一、數(shù)據(jù)結構:研究數(shù)據(jù)(數(shù)據(jù)元素)之間的關系。(C研究數(shù)值型數(shù)據(jù)之間的簡單運算, 數(shù)據(jù)結構 還研究非數(shù)值型之間的運算)
1.邏輯結構(關系):集合、線性關系、樹形關系、圖狀關系(線性和非線性關系)
2.物理結構(物理關系):邏輯結構在計算機內(nèi)存中具體實現(xiàn)的方法,有順序、鏈式、 索引、散列等存儲方法
3.數(shù)據(jù)運算:對數(shù)據(jù)進行的操作,增、刪、查、改、排序。
數(shù)據(jù)即信息的載體。
數(shù)據(jù)元素是數(shù)據(jù)的基本單位(又稱記錄,Record),由若干個基本項(or字段、域屬性)組成
數(shù)據(jù)類型是對數(shù)據(jù)元素取值范圍與運算的限定
數(shù)據(jù)Date 數(shù)據(jù)類型Date Type 數(shù)據(jù)元素Date Element
數(shù)據(jù)結構Date Structure 物理結構(存儲結構)Physical Structure
順序存儲Sequential Storage 鏈式存儲Linked Storage
索引存儲Indexed Storage 散列存儲Hash Storage
形式化語言描述(數(shù)學表達式):
DS=(D,R)D數(shù)據(jù)元素的集合,R D上關系的集合
集合——數(shù)據(jù)元素間除“同屬于一個集合”外,無其他關系
線性結構——一個對一個,如線性表、棧、隊列
樹形結構——一個對多個,如樹
圖狀結構——多個對多個,如圖(圖是樹的拓展,可有樹構成)
算法Algorithm一個又窮規(guī)則(or語句、指令)的有序集合(對程序的優(yōu)化,易閱讀、調(diào)試、維護)
特性:有窮性、確定性、可行性、輸入(0-n)、輸出(1-n)
程序 = 算法 + 數(shù)據(jù)結構
算法與程序的區(qū)別:
1.算法與計算機無關,程序依賴于具體的計算機語言
2.算法重點是在解決問題的思路上
算法分析(好壞):時間復雜度T(n) 空間復雜度D(n)(不考慮,犧牲來成全時間)Time/Space Complexity
語句的頻度:可執(zhí)行語句程序中重復執(zhí)行的次數(shù)。某語句執(zhí)行一次耗時t,執(zhí)行次數(shù)f,則該語句總耗時t*f。
量級T(n)=O(n3) 取次數(shù)的項并去掉系數(shù),作為時間復雜度 。
↑上午 概念
↓下午 線性表 的邏輯和存儲結構、相關算法的實現(xiàn)以及線性表的應用舉例。
線性表Linear List
創(chuàng)建:申請一個結構體
結構體聲明寫在頭文件里面
用gedit編輯.h和.c文件
方便的查找,在挨著表的末尾空間在申請一個空間用來存放表的有效個數(shù)or一個元素下標。
創(chuàng)建表 :...待寫
插入數(shù)據(jù):1.首先判斷表是否為滿。2.判斷插入的位置是否有效。3.從后往上移動數(shù)據(jù)元素。 4.插入元素。5.尾指針last+1
刪除數(shù)據(jù):1.首先判斷表是否為空。2.判斷刪除的位置是否有效。3.刪除后從前往后移動元 素。4.尾指針last-1。5移動后,之前的一個數(shù)據(jù),直接忽視不用了,但是 還在。
想要了解更多嵌入式的知識那就來“撩”我們吧!