基於資料儲存管理的帶有頭尾指標的雙向鍊錶建立例項

2022-04-05 00:54:57 字數 1549 閱讀 1513

1.基於lru演算法的帶有頭尾指標的雙向鍊錶的資料結構

typedef struct lruele        //

lru鍊錶結點

link;

struct lrulinklist //

lru鍊錶

;

2.建立乙個帶有頭結點的空雙向鍊錶

lrulinklist *lrulist;

//

初始化乙個帶有頭結點的空lru雙向鍊錶

link * head=new

lruele();head->next = head;

head->prior =head;link * tail =head;

lrulist

=(lrulinklist *)malloc(sizeof(lrulinklist));

lrulist->head=head;

lrulist->tail=tail;

3.錯誤的實現方法

//

link * head=new lruele();

//link * tail=new lruele(); 初始化時頭尾指標已同乙個結點,不應分配兩個不同的記憶體空間

//head->next=tail;   這樣的實現,相當於建立了兩個空的頭結點;對於插入、刪除沒有一點好處,而且浪費記憶體空間

//tail->next=head;

//head->prior=tail;

//tail->prior=head;

4.帶有頭尾指標的單鏈表的資料結構

typedef struct lnode  link, *position;  

typedef

struct linklist;

5.帶有頭尾指標的單鏈表的初始化

linklist *l = (linklist *)malloc(sizeof(linklist));

l->head = (link *)malloc(sizeof

(link));

l->tail = (link *)malloc(sizeof

(link));

if(!l->head || !l->tail)

exit(overflow);

l->head = l->tail;l->tail->next =

null;

return ok;

6.帶有頭尾指標的單鏈表與雙向鍊錶初始化的不同:見紅色部分!!

一定要注意對只含頭尾指標的結構體分配記憶體空間(紅色部分)。

基於列儲存的資料庫vertica

出處 最近在研究基於列儲存的資料庫,相對於傳統的基於行的資料庫,它更適合在資料倉儲儲存方面發揮特長。看了一些英文文件之後,將技術 1.基於列儲存的資料庫的優點 a 對於聚集操作,比如求sum,明顯基於列儲存的要比基於行儲存的快 b 對於update操作,不須接觸其他列值 c 基於行儲存的資料庫在查詢...

基於雲計算的海量資料儲存模型

隨著越來越多的人使用計算機,整個網路會產生數量巨大的資料,如何儲存網路中產生 的這些海量資料,已經是乙個擺在面前亟待解決的問題。現在常見的三種儲存方式是das 1 nas 和san,但是面對網路產生的越來越多的資料,這三種方式的缺點就明顯的暴露出來。das 儲存方式可擴充套件性差,系統效能低,儲存分...

資料結構 基於鏈式儲存的佇列

這是乙個基於帶頭結點單鏈表下實現的的鏈佇列,但是寫完我覺得 中存在如下問題 感覺不夠完美 首先看定義 define elemtype int typedef struct linknode linknode typedef struct linkqueue 初始時隊首指標和隊尾指標都指向頭結點 帶頭...