雙向鍊錶知識總結

2021-09-24 04:26:53 字數 833 閱讀 2140

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈鍊錶。

typedef struct node

dlinklist;

int  init_dlinklist(dlinklist * head,dlinklist * tail)

createlink(dlinklist *head,dlinklist *tail,int a,int n)

}

printlist(dlinklist *head,dlinklist *tail)

printf("\n");

}

p->prior->next=p->next;

p->next->prior=p->prior;

free(p);

s->prior=p;

s->next=p->next;

p->next->prior=s;

p->next=s;

可是為什麼市場上單鏈表的使用多於雙鏈表呢?

從儲存結構來看,每個雙鏈表的節點要比單鏈表的節點多乙個指標,而長度為n就需要 n*length(這個指標的length在32位系統中是4位元組,在64位系統中是8個位元組) 的空間,這在一些追求時間效率不高應用下並不適應,因為它占用空間大於單鏈表所占用的空間;這時設計者就會採用以時間換空間的做法,這時一種工程總體上的衡量。

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...

雙向鍊錶(鍊錶)

雙向鍊錶 每個節點包含指向後繼節點的指標和指向前驅節點的指標。繼承關係圖 實體圖 duallinklist.h duallinklist 雙向鍊錶類模板 成員變數 node 節點實體 m header 頭節點 m length 鍊錶長度 m step 步進長度 m current 當前節點前乙個節點...

雙向鍊錶 3 反轉雙向鍊錶

雙向鍊錶的反轉過程,可以參考下面的例圖。a 原始雙向鍊錶 b 反轉後的雙向鍊錶 下面是乙個用於反轉雙向鍊錶的簡單方法。所需要做的事情就是交換每個節點的前向指標和後向指標,然後調整鍊錶的頭指標和尾指標。include struct node 對鍊錶進行反轉 void reverse node head...