1. 程式人生 > >C語言之雙向連結串列

C語言之雙向連結串列

為了克服單向性的缺點,雙向連結串列得到應用。

typedef struct link
{
 int data;
 struct link* prev;  //比起單向連結串列,多了指向前個節點的指標
 struct link* next;
}link,*link_str;

 

雙向連結串列中,下一個節點的前指標直接,上一個節點的後指標也是自己。

p->next->prev=p=p->prev->next;
/**********實現插入**********/
/**********將s節點插入到p和p->next之間*****************/
/***************************/
//雙向連結串列的插入和單向連結串列類似,但是要注意順序
s->prev=p;         //先將新插入的節點的前後指標定義好
s->next=p->next;
p->next->prev=s;   //再將之前的前後節點的指標重新設定
p->next=s->prev;


/************刪除節點***************/
/************將p節點刪去**************/
p->prev=p->next->prev;
p->prev->next=p->next;