線性表的鏈結儲存 迴圈雙鏈表

2021-07-11 19:36:20 字數 970 閱讀 1797

在單鏈表的每個結點中再設定乙個指向其前驅結點的指標域,這樣就形成了雙鏈表,再將頭結點和尾結點連線起來也就能構成迴圈雙鏈表。

1.無論是插入還是刪除操作,對鍊錶中開始結點、終端節點和中間任意結點的操作過程相同。

2.設指標p指向迴圈雙鏈表中的某一結點,則迴圈雙鏈表具有如下對稱性:(p->prior)->next=p=(p->next)->prior

**:#includeusing namespace std;

#define null 0

struct node

;class doublylinklist

;doublylinklist::doublylinklist()

doublylinklist::doublylinklist(int a,int n)

}doublylinklist::~doublylinklist()

}int doublylinklist::length()

return c;

}int doublylinklist::get(int i)

if(p==null) throw "位置";

else return p->data;

}int doublylinklist::locate(int x)

}}void doublylinklist::insert(int i,int x)

node *s=new node;

s->data=x;

s->prior=p->prior;

p->prior=s;

s->next=p->next;

p->next=s;

}int doublylinklist::delete(int i)

if(p==first || p->next==first) throw "位置";

else

}void doublylinklist::printlist()

cout<

線性表 雙鏈表(非迴圈)

s1雙鏈表定義 1 雙 向 鍊錶中有兩條方向不同的鏈,即每個節點中除next域存放後繼結點地之外,還增加乙個指向其直接前驅的指標域prior。2 哨兵節點時隔啞物件,可以簡化邊界條件。s2雙鏈表前插與刪除節點操作 1 雙向鍊錶的前插操作。由於雙鏈表的對稱性,在雙鏈表中能完成各種插入與刪除操作 2 雙...

線性表 雙鏈表

雙鏈表也是線性表的一種,它的全稱是 線性雙向鏈結表,它有以下特點 在每個節點中除包含有數值域外,設定有兩個指標域,分別用以指向其前驅節點和後繼節點。既可以依次向後訪問每乙個節點,也可以依次向前訪問每乙個節點。dlinklist.h如下 include include typedef int elem...

線性表 雙鏈表

雙鏈表的結點結構 空的雙向鍊錶 處理原則 先在正向鍊錶上插入,再在逆向鍊錶上插入 q rlink p rlink p rlink q q llink p q rlink llink q 在表尾進行插入時 q rlink p rlink p rlink q q llink p if q rlink q...