C 企業鍊錶

2021-09-25 08:47:52 字數 1641 閱讀 4421

c++企業鍊錶

開發工具與關鍵技術:c++、visualstudio
所謂的企業鍊錶其實只是因為企業經常用到,所以叫企業鍊錶,它相當於linux核心鍊錶的公升級版,

那麼這兩種鍊錶和傳統鍊錶有什麼區別,它們和傳統鍊錶的區別就在於它們的指標域,

也就鍊錶節點中的next指標,至於區別在**呢?

就是傳統鍊錶的指標域在linux核心鍊錶和企業鍊錶中是以節點形式存在的,

至於它們是怎麼以節點的形式存在,我在後面的例子會說。

現在我們來看一下linux核心鍊錶和企業鍊錶的區別,我們看一下下面兩幅圖。

linux核心鍊錶

企業鍊錶

在linux核心鍊錶的示意圖中我們可以看到的是圖中有偏移量的字眼,而企業鍊錶是沒有的,

這就是為什麼說企業鍊錶是linux核心鍊錶的公升級版,我們在讀取節點資料時,

如果使用linux核心鍊錶則我們需要計算偏移量,企業鍊錶則不需要,除此以外linux核心鍊錶和企業鍊錶一模一樣。

下面是企業鍊錶結構的定義和一些函式原型

#include

using namespace std;

typedef struct linknode//鍊錶節點中的小節點

linknode;

typedef struct linklist//鍊錶

linklist;

typedef struct mydata//節點的資料

mydata;

linklist * init_linklist();//初始化鍊錶

void insert_linklist(linklist list, linknode * data);//插入

void out_linklist(linklist list);//遍歷輸出鍊錶

我們在定義鍊錶結構的時候就可以看到企業鍊錶和傳統鍊錶的區別了,在這裡我定義了三個結構體,linknodez node就是代替傳統鍊錶中的next指標的位置,它作為乙個節點的形式存在,我稱它為鍊錶節點中的小節點。下面就對上面函式原型的定義,因為對乙個鍊錶的了解,有遍歷輸出鍊錶和插入節點就可以了。

linklist * init_linklist()//初始化鍊錶

void insert_linklist(linklist list, linknode * data)//插入新節點

data->next = pcurrent->next; //把新節點的next指向尾節點的next

pcurrent->next = data; //把尾節點的next指向新節點

list->size++;//鍊錶節點數自增

}void out_linklist(linklist list)//遍歷輸出鍊錶

執行結果

C 企業 鍊錶

include using namespace std class linked typedef void print linked 列印方法函式型別 class linkestruct class teacher linkestruct linkestruct linkestruct linkes...

迴圈鍊錶企業鍊錶

一 特點 讓鍊錶的最後乙個結點的next指標指向頭結點。初始化小節點時直接讓next指標指向鍊錶的頭結點。二 include include include 小結點 typedef struct listnode listnode 鍊錶結點 typedef struct circularlist c...

14 企業鍊錶

linklist.h 1 ifndef linklist h 2 define linklist h 34 include5 include6 include 78 9 鍊錶小結點 10 typedef struct linknode linknode 1314 鍊錶結點 15 typedef st...