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