1、雙向連結串列的每個結點的儲存結構為 typedef struct DuLNode { ElemType data; DuLNode * prior,* next;//指向前驅結點和後繼結點的指標 }DuLNode,* DuLinkList;2、頭結點的前驅指標是指向連結串列的最後一個結點, 用頭插法建立連結串列時,是在連結串列的頭部增加結點,即最後一個結點始終是不變的 即新增結點(連結串列只有頭結點時新增結點除外)不需要修改頭結點的前驅指標, 使其指向最後一個結點3、當連結串列只有頭結點,即p->next = p->prior = p; 時(p是頭結點) 新增連結串列的第一個結點,此時才需要修改頭結點的前驅指標使其指向最後一個結點 s->data = e;//s是新增的第一個結點 s->prior = p;//p是頭結點 s->next = p->next; p->next->prior = s; p->next = s;
1、雙向連結串列的每個結點的儲存結構為 typedef struct DuLNode { ElemType data; DuLNode * prior,* next;//指向前驅結點和後繼結點的指標 }DuLNode,* DuLinkList;2、頭結點的前驅指標是指向連結串列的最後一個結點, 用頭插法建立連結串列時,是在連結串列的頭部增加結點,即最後一個結點始終是不變的 即新增結點(連結串列只有頭結點時新增結點除外)不需要修改頭結點的前驅指標, 使其指向最後一個結點3、當連結串列只有頭結點,即p->next = p->prior = p; 時(p是頭結點) 新增連結串列的第一個結點,此時才需要修改頭結點的前驅指標使其指向最後一個結點 s->data = e;//s是新增的第一個結點 s->prior = p;//p是頭結點 s->next = p->next; p->next->prior = s; p->next = s;