4.特殊链表
一、双链表
双链表需要注意的是插入和删除操作
- 插入
- S->next = p->next
- p->next->prior = S
- S->prior = p->next
- p->next = S(这个必须放在最后)
- 删除(删除q)
- p->next = q->next
- q->next->prior = p
- free(q)
二、循环链表
循环链表分为:
- 循环单链表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BJOk7ST0-1592874275181)(https://uploader.shimo.im/f/0YjXxkImVUlFMGhM.png!thumbnail)]
- 循环双链表
要注意的是对空表的判断:
- 循环单链表判断是否为空:L->next == L
- 循环双链表判断是否为空:L->next == L or L->prior = L