gogo专业大尺度亚洲高清人体,美女张开双腿让男生桶,亚洲av无码一区二区三区鸳鸯影院,久久久久国产精品人妻

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識(shí)大全(學(xué)霸筆記)

數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識(shí)大全(學(xué)霸筆記) 時(shí)間:2018-08-09      來(lái)源:未知

一、學(xué)習(xí)知識(shí)點(diǎn):

1、順序表、鏈表

2、順序棧、鏈棧

3、順序隊(duì)列、鏈?zhǔn)疥?duì)列

4、樹(shù)

5、圖&哈希表

二、學(xué)習(xí)內(nèi)容

1、

(1)順序表:簡(jiǎn)記:立個(gè)flag標(biāo)記最后有效元素的位置。特點(diǎn):查找快,刪、增慢。插入的元素從前面逐個(gè)插入。

(2)鏈表:頭插、尾插。單向或雙向循環(huán)鏈表要注意頭結(jié)點(diǎn)與尾節(jié)點(diǎn)的連接

在鏈表操作中經(jīng)常出現(xiàn)段錯(cuò)誤的原因:當(dāng)用指針進(jìn)行地址操作時(shí)由于指針是個(gè)變量,可以表示某個(gè)地址也可表示NULL,因?yàn)椴僮鲿r(shí)對(duì)指針變量進(jìn)行的賦值操作可能會(huì)導(dǎo)致指針被賦予NULL,再對(duì)此時(shí)的指針進(jìn)行地址偏移操作就會(huì)產(chǎn)生段錯(cuò)誤。另一個(gè)需要注意的問(wèn)題:指針不僅要關(guān)注被賦予的是不是地址,大小是否匹配,在鏈表操作中還要關(guān)注操作對(duì)象

2、

(1) 順序棧:也是立個(gè)int 型 flag,像操作數(shù)組一樣 -1為空,N-1時(shí)為滿(mǎn),flag自增時(shí)放數(shù)據(jù),刪除時(shí)先把數(shù)據(jù)取出記錄,flag自減

(2) 鏈棧:一、只有鏈表 先把頭結(jié)點(diǎn)的下家初始為空,然后采取頭插法,只是頭結(jié)點(diǎn)的下家為空時(shí)?眨箢^結(jié)點(diǎn)一直往棧頂升。刪除:先用個(gè)指針把頭結(jié)點(diǎn)的下家記錄下來(lái),再把頭結(jié)點(diǎn)的下家的信息記錄下來(lái),然后頭結(jié)點(diǎn)與頭結(jié)點(diǎn)下家的下家連接上后就可刪除了

3、

(1) 順序隊(duì)列:立兩個(gè)flag(頭和尾),頭尾相等時(shí)為空,尾加1對(duì)數(shù)組長(zhǎng)度取模等于頭滿(mǎn)

(2) 鏈?zhǔn)疥?duì)列:用鏈表操作,一個(gè)結(jié)構(gòu)體記錄信息和下家,另一個(gè)結(jié)構(gòu)體為節(jié)點(diǎn)類(lèi)型的指針?lè)謩e用于指向頭和尾節(jié)點(diǎn),此隊(duì)列只有空沒(méi)有滿(mǎn)的情況。申請(qǐng)空間的時(shí)候先為有兩個(gè)節(jié)點(diǎn)類(lèi)型的指針的結(jié)構(gòu)體申請(qǐng),然后通過(guò)指針解引用申請(qǐng)一個(gè)節(jié)點(diǎn)類(lèi)型的空間,用這兩個(gè)指針接收地址,接著將指向頭結(jié)點(diǎn)的指針的下家初始化為NULL,其實(shí)就是初始化鏈表,當(dāng)頭節(jié)點(diǎn)的下家為空時(shí)隊(duì)列為空。

4、

(1)樹(shù)的創(chuàng)建和前序(根 左 右)、中序(左 根 右)都采用遞歸的方法

(2)樹(shù)的層次遍歷:用鏈?zhǔn)疥?duì)列操作,主要是將樹(shù)的某個(gè)節(jié)點(diǎn)的數(shù)據(jù)和左右子節(jié)點(diǎn)封裝成一個(gè)數(shù)據(jù),再讓其充當(dāng)鏈表操作中的數(shù)據(jù)元素的位置。

(3)非遞歸先序遍歷樹(shù):用鏈棧操作 做法與樹(shù)的層次遍歷相同。

(4)完全二叉樹(shù):也采用遞歸的方式創(chuàng)建,在創(chuàng)建的時(shí)候傳兩個(gè)參數(shù),一個(gè)是節(jié)點(diǎn)總數(shù),一個(gè)是傳進(jìn)去的節(jié)點(diǎn)號(hào)(節(jié)點(diǎn)內(nèi)的數(shù)據(jù)等于節(jié)點(diǎn)號(hào)時(shí)),然后利用節(jié)點(diǎn)的左子節(jié)點(diǎn)為節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)*2,右節(jié)點(diǎn)為節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)*2+1判斷條件,滿(mǎn)足左右子節(jié)點(diǎn)都小于等于最大節(jié)點(diǎn)號(hào)則遞歸創(chuàng)建,不滿(mǎn)足則返回空。

5、

圖分為有向圖和無(wú)向圖,有向圖是單向的,無(wú)向圖是雙向的。圖的算法有深度優(yōu)先算法(相當(dāng)于樹(shù)的前序遍歷)、廣度優(yōu)先算法(相當(dāng)于樹(shù)的層次遍歷)

哈希表 用鏈表操作 一個(gè)存放普通數(shù)據(jù)數(shù)組 一個(gè)節(jié)點(diǎn)類(lèi)型數(shù)組:初始化數(shù)組成員數(shù)據(jù)為0,指針next為空,這個(gè)節(jié)點(diǎn)類(lèi)型的數(shù)組相當(dāng)于一排并排的頭結(jié)點(diǎn),位置由數(shù)組下標(biāo)標(biāo)示。然后將數(shù)組中的數(shù)據(jù)對(duì)數(shù)組長(zhǎng)度取模計(jì)算數(shù)據(jù)存放下標(biāo),后面就是鏈表的操作。

三、經(jīng)驗(yàn)小結(jié)

例:球鐘問(wèn)題 將這個(gè)問(wèn)題的各種可重復(fù)單一功能封裝成函數(shù),后期調(diào)用即可,在main函數(shù)中寫(xiě)邏輯調(diào)用即可。這種做法類(lèi)似于文件io操作,別人提供的庫(kù)函數(shù)就是實(shí)現(xiàn)某一可重復(fù)單一功能,將要的任務(wù)在main中寫(xiě)邏輯,遇到相應(yīng)的要做的功能直接調(diào)用即可。

編寫(xiě)代碼時(shí)常犯錯(cuò)誤:

頭文件忘記打(帶有退出狀態(tài))

全局變量一般不在頭文件中定義,在頭文件中定義頭文件的話(huà)就不能將頭文件初始化為0,數(shù)組要加static

一個(gè)程序本質(zhì)上都是由 bss段、data段、text段三個(gè)組成的。在采用段式內(nèi)存管理的架構(gòu)中(比如intel的80x86系統(tǒng)),bss段(Block Started by Symbol segment)通常是指用來(lái)存放程序中未初始化的全局變量的一塊內(nèi)存區(qū)域,一般在初始化時(shí)bss 段部分將會(huì)清零。bss段屬于靜態(tài)內(nèi)存分配,即程序一開(kāi)始就將其清零了。

比如,在C語(yǔ)言之類(lèi)的程序編譯完成之后,已初始化的全局變量保存在.data 段中,未初始化的全局變量保存在.bss 段中。

全局變量,靜態(tài)變量默認(rèn)初始化

數(shù)組的初始化只能在定義時(shí)用,特別要注意結(jié)構(gòu)體指針內(nèi)有數(shù)組,為其malloc申請(qǐng)空間時(shí)

未定義錯(cuò)誤;

指針的定義 例:int *a,*b;(a,b都是指針)

int *a,b;(a是指針,b不是)在定義指針時(shí),將

*與變量當(dāng)做一個(gè)整體來(lái)看以表示是一個(gè)指針變量;

將結(jié)構(gòu)體成員沒(méi)有解引用或引用就直接使用造成未定義錯(cuò)誤

C語(yǔ)法錯(cuò)誤:例如:指針 按照c的規(guī)則,靜態(tài)的指針賦值操作或偏移操作是沒(méi)有錯(cuò)誤的,但在程序中,常用變量來(lái)代替值,而一個(gè)程序中的變量經(jīng)常會(huì)變,例當(dāng)指針的值在某一刻被賦空值又對(duì)這個(gè)指針進(jìn)行偏移操作或其他不應(yīng)有的操作就會(huì)出現(xiàn)斷錯(cuò)誤,也屬于c語(yǔ)法錯(cuò)誤,在編程中要關(guān)注編寫(xiě)時(shí)指針變量對(duì)應(yīng)的地址,大小,對(duì)象以及程序運(yùn)行后變量的值發(fā)生的變化,以及發(fā)生了變化后對(duì)其進(jìn)行的操作

鏈接錯(cuò)誤:忘記鏈接庫(kù)

在編程時(shí)對(duì)一個(gè)變量的關(guān)注的:1.變量類(lèi)型,普通類(lèi)型,結(jié)構(gòu)體類(lèi)型,指針類(lèi)型,數(shù)組,變量的值會(huì)發(fā)生變化,對(duì)發(fā)生變化后的變量進(jìn)行的操作可能造成的結(jié)果

對(duì)不同類(lèi)型的變量的使用要符合語(yǔ)法

數(shù)據(jù)類(lèi)型是對(duì)取值范圍和運(yùn)算方式的限定

隊(duì)列和棧本質(zhì)都是線(xiàn)性表

頭文件:函數(shù)聲明,函數(shù)實(shí)現(xiàn),結(jié)構(gòu)體定義

不能對(duì)表達(dá)式和常量賦值

結(jié)構(gòu)體指針:->

結(jié)構(gòu)體:.

順序表:數(shù)組是存儲(chǔ)數(shù)據(jù)的容器,為這個(gè)容器定義一些

增刪查改的運(yùn)算,把這個(gè)集合稱(chēng)為順序表

段錯(cuò)誤:空指針,非法指針

$?(返回上一條shell指令執(zhí)行的結(jié)果)

exit()終止進(jìn)程 頭文件

return 讓當(dāng)前函數(shù)返回

main函數(shù)return 后面也有一個(gè)exit

char * p;

%p ,p 打印p的值

printf()語(yǔ)句是從右往左執(zhí)行的

順序表查找快,插入刪除慢,鏈表相反

要關(guān)注指針指向的對(duì)象。

可以百度關(guān)于鏈表的面試題。

棧本質(zhì)上是一個(gè)實(shí)現(xiàn)后進(jìn)先出的線(xiàn)性表

上一篇:QT開(kāi)發(fā)入門(mén)基礎(chǔ)及界面的建立原理

下一篇:庫(kù)及i/o函數(shù)的課堂筆記

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專(zhuān)線(xiàn):010-82525158 企業(yè)培訓(xùn)洽談專(zhuān)線(xiàn):010-82525379 院校合作洽談專(zhuān)線(xiàn):010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部