双链表示意图 双向链表 first→∠ ao a1 an-1 last back 北京大学信息学院张铭编写 版权所有,转载或翻印必究 age 21
北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 21 back next 双链表示意图 first last a0 a1 an-1 双向链表
双链表及其结点类型的说明 struct dblListnode ELEM data DblListnode mrlink: DblListNode *llink: struct Double list DblListNode *first, *last: back f, 北京大学信息学院张铭编写 版权所有,转载或翻印必究 age 22
北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 22 back next 双链表及其结点类型的说明 struct DblListNode { ELEM data; DblListNode *rlink; DblListNode *llink; }; struct DoubleList { DblListNode *first,*last; };
插入过程(注意顺序) 在p所指结点后面插入一个新结点 p new gi q->rlink=p->rlink q>link=p(注意,教材p-> rlink>link) p->rlink=q q> rlink洲link=q back 北京大学信息学院张铭编写 版权所有,转载或翻印必究
北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 23 back next 插入过程(注意顺序) 在p所指结点后面插入一个新结点 p q q->rlink=p->rlink q->llink=p (注意,教材p->rlink->llink) p->rlink=q q->rlink->llink=q new q;
删除过程 删除p所指的结点 -+A p p->llink->rlink=p->rlink p->rlink->llink=p->llink p->rlink= NULL 如果马上删除p p->link=NULL 则可以不赋空 back 北京大学信息学院张铭编写 版权所有,转载或翻印必究 age 24
北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 24 back next 删除过程 如果马上删除p 则可以不赋空 删除p所指的结点 p p->llink->rlink=p->rlink p->rlink->llink=p->llink p->rlink=NULL p->llink=NULL
2.3.3循环链表 (circularly linked list) 单链表或双链表的头尾结点链接 起来 给不少操作带来了方便 从循环表中任一结点出发,都能 访问到表中其他结点 不增加额外存储花销 back 北京大学信息学院张铭编写 版权所有,转载或翻印必究 age 25
北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 25 back next 2.3.3 循环链表 (circularly linked list) 单链表或双链表的头尾结点链接 起来 给不少操作带来了方便 从循环表中任一结点出发,都能 访问到表中其他结点 不增加额外存储花销