2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、深入分析Linux內(nèi)核鏈表級別:初級楊沙洲(pubb@)國防科技大學(xué)計算機學(xué)院2004年8月01日本文詳細(xì)分析了2.6.x內(nèi)核中鏈表結(jié)構(gòu)的實現(xiàn),并通過實例對每個鏈表操作接口進行了詳盡的講解。一、一、鏈表數(shù)據(jù)結(jié)構(gòu)簡介鏈表數(shù)據(jù)結(jié)構(gòu)簡介鏈表是一種常用的組織有序數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),它通過指針將一系列數(shù)據(jù)節(jié)點連接成一條數(shù)據(jù)鏈,是線性表的一種重要實現(xiàn)方式。相對于數(shù)組,鏈表具有更好的動態(tài)性,建立鏈表時無需預(yù)先知道數(shù)據(jù)總量,可以隨機分配空間,可以高效地在鏈

2、表中的任意位置實時插入或刪除數(shù)據(jù)。鏈表的開銷主要是訪問的順序性和組織鏈的空間損失。通常鏈表數(shù)據(jù)結(jié)構(gòu)至少應(yīng)包含兩個域:數(shù)據(jù)域和指針域,數(shù)據(jù)域用于存儲數(shù)據(jù),指針域用于建立與下一個節(jié)點的聯(lián)系。按照指針域的組織以及各個節(jié)點之間的聯(lián)系形式,鏈表又可以分為單鏈表、雙鏈表、循環(huán)鏈表等多種類型,下面分別給出這幾類常見鏈表類型的示意圖:1單鏈表單鏈表圖1單鏈表單鏈表單鏈表是最簡單的一類鏈表,它的特點是僅有一個指針域指向后繼節(jié)點(next),因此,對單鏈表

3、的遍歷只能從頭至尾(通常是NULL空指針)順序進行。2雙鏈表雙鏈表圖2雙鏈表雙鏈表通過設(shè)計前驅(qū)和后繼兩個指針域,雙鏈表可以從兩個方向遍歷,這是它區(qū)別于單鏈表的地方。如果打亂前驅(qū)、后繼的依賴關(guān)系,就可以構(gòu)成“二叉樹“;如果再讓首節(jié)點的前驅(qū)指向鏈表尾節(jié)點、尾節(jié)點的后繼指向首節(jié)點(如圖2中虛線部分),就構(gòu)成了循環(huán)鏈表;如果設(shè)計更多的指針域,就可以構(gòu)成各種復(fù)雜的樹狀數(shù)據(jù)結(jié)構(gòu)。3循環(huán)鏈表循環(huán)鏈表2010919深入分析Linux內(nèi)核鏈表develo

4、perwks…lchain19三、三、鏈表操作接口鏈表操作接口1.聲明和初始化聲明和初始化實際上Linux只定義了鏈表節(jié)點,并沒有專門定義鏈表頭,那么一個鏈表結(jié)構(gòu)是如何建立起來的呢?讓我們來看看LIST_HEAD()這個宏:#defineLIST_HEAD_INIT(name)除了用LIST_HEAD()宏在聲明的時候初始化一個鏈表以外,Linux還提供了一個INIT_LIST_HEAD宏用于運行時初始化鏈表:#defineINIT_L

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論