雙鏈表的演算法操作

2021-07-12 04:25:26 字數 444 閱讀 5575

1、雙鏈表

雙鏈表就是在單鏈表結點上增添了乙個指標域,指向當前結點的前驅。

2、雙鏈表結點定義

typedef struct doublelinkedlists

doublelinkedlists;

3、插入結點的演算法

假設在雙鏈表中p所指的結點之後插入乙個結點s,操作如下:

(1)s->next=p->next;

(2)s->prior=p;

(3)p->next=s;

(4)s->next->prior=s;

4、刪除結點的演算法

假設要刪除雙鏈表中p結點的後繼結點,操作如下:

(1)q=p->next;

(2)p->next=q->next;

(3)q->next->prior=p;

(4)free(q);

雙鏈表的操作

include define nil 0 using namespace std struct list struct link insert link l,list x 將x插入鍊錶l中 delete element link l,list x 刪除l鍊錶中的x元素 int search link...

雙鏈表操作

處理完了單鏈表,這次處理雙鏈表。在乙個雙鏈表中,每個節點都包含兩個指標,指向前乙個節點的指標和指向後乙個節點的指標。這可以使我們以任何方式遍歷雙鏈表,甚至可以忽略前後地在雙鏈表中訪問。下面的圖示展示了乙個雙鏈表 下面是節點型別的宣告檔案 double linked list node.h ifnde...

雙鏈表演算法

package main import fmt type node struct 末尾插入 func insert head node,newnode node tmp tmp.next 正向遍歷 func list head node forelse tmp tmp.next 反向遍歷 func ...