mooc课程精选,成品人片观看入口众乐乐,久久久久人妻一区精品性色av,苍兰诀大结局是什么,白丝美女被狂躁免费视频网站


嵌入式linux內核數據結構之循環鏈表

分享到:
           

    鏈表作為嵌入式Linux內核中常見的數據結構,在之前的文章里我們分別介紹過了單向鏈表雙向鏈表,今天主要介紹的則是循環列表。

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


圖1.1 循環鏈表結構

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

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

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

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

    表1.1總結了各種鏈表的異同點。

    表1.1                                     各種鏈表的異同點

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

   熱點鏈接:

   1、嵌入式linux內核數據結構之雙向鏈表
   2、嵌入式linux內核數據結構之單向鏈表
   3、Linux內核模塊程序結構
   4、嵌入式Linux內核如何編譯
   5、嵌入式Linux開發學習

更多新聞>>