国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩


嵌入式linux內(nèi)核數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表

分享到:
           

    鏈表作為嵌入式Linux內(nèi)核中常見的數(shù)據(jù)結(jié)構(gòu),在之前的文章里我們分別介紹過了單向鏈表雙向鏈表,今天主要介紹的則是循環(huán)列表。

    單向鏈表的后一個節(jié)點的指針域為空(NULL)。如果將這個指針利用起來,以指向單向鏈表的第一個節(jié)點,就能組成一個單向循環(huán)鏈表,如圖1.1所示。


圖1.1 循環(huán)鏈表結(jié)構(gòu)

    可以看到,循環(huán)鏈表的組織結(jié)構(gòu)與單鏈表非常相似,因此其操作與單鏈表也是一致的,惟一的差別僅在于在單鏈表中,算法判端到達鏈表尾的條件是p→next是否為空,而在雙鏈表中,則是判斷p→next是否等于頭指針。

    總而言之,循環(huán)鏈表的運算與單鏈表的運算基本一致,所不同的有以下幾點:

    1、在建立一個循環(huán)鏈表時,必須使其后一個結(jié)點的指針指向表頭結(jié)點,而不是像單鏈表那樣置為NULL。此種情況還使用于在后一個結(jié)點后插入一個新的結(jié)點。

    2、在判斷是否到表尾時,是判斷該結(jié)點鏈域的值是否是表頭結(jié)點,當(dāng)鏈域值等于表頭指針時,說明已到表尾。而非像單鏈表那樣判斷鏈域值是否為NULL。

    表1.1總結(jié)了各種鏈表的異同點。

    表1.1                                     各種鏈表的異同點

單 向 鏈 表 雙 向 鏈 表 單向循環(huán)鏈表 雙向循環(huán)鏈表
指針域 Next next,priv Next next,priv
結(jié)尾指針 NULL NULL 頭指針 頭指針
內(nèi)存占用 較少 較多 較少 較多
操作靈活性 較不靈活,每次搜索都必須從頭指針開始,不能反向搜索 較為靈活,搜索時可以反向搜索,但也從頭指針開始搜索 較為靈活,搜索時可以不從頭指針開始,但不能反向搜索 非常靈活,搜索時可以不從頭指針開始,且可以反向搜索
時間復(fù)雜度 O(N) O(N) O(N) O(N)
空間復(fù)雜度 O(N) O(N) O(N) O(N)

   熱點鏈接:

   1、嵌入式linux內(nèi)核數(shù)據(jù)結(jié)構(gòu)之雙向鏈表
   2、嵌入式linux內(nèi)核數(shù)據(jù)結(jié)構(gòu)之單向鏈表
   3、Linux內(nèi)核模塊程序結(jié)構(gòu)
   4、嵌入式Linux內(nèi)核如何編譯
   5、嵌入式Linux開發(fā)學(xué)習(xí)

更多新聞>>