当前位置:   article > 正文

双链表的插入和删除操作_r5-1双链表插入操作

r5-1双链表插入操作

目录

1、插入操作

2、删除操作


1、插入操作

  1. s->next = p->next; //将结点s插入到结点p之后
  2. p->next->prior = s;
  3. s->prior = p;
  4. p->next = s;

        头插法建立双链表 

  1. //头插法建立双链表(有头结点)
  2. DLinkList List_HeadInsert(DLinkList &L) {
  3. L = (DLinkList)(malloc(sizeof(DNode)));
  4. DNode *s;
  5. L->next = NULL;
  6. L->prior = NULL;
  7. int data_insert;
  8. cin>>data_insert;
  9. while (data_insert != 9999) {
  10. s = (DNode*)(malloc(sizeof(DNode)));
  11. s->data = data_insert;
  12. if (L->next == NULL) { //第一个结点为空
  13. L->next = s;
  14. s->prior = L;
  15. s->next = NULL;
  16. }
  17. else {
  18. s->next = L->next;
  19. L->next->prior = s;
  20. s->prior = L;
  21. L->next = s;
  22. }
  23. cin>>data_insert;
  24. }
  25. return L;
  26. }

2、删除操作

  1. p->next = q->next; //删除结点p的后继节点q
  2. q->next->prior = p;
  3. free(q);
  1. //删除操作的实现
  2. DLinkList DListDelete(DLinkList &L,int i){
  3. DNode *p = GetDNode(L,i-1); //得到被删结点的前驱节点
  4. DNode *q = p->next;
  5. p->next = q->next;
  6. q->next->prior = p;
  7. free(q);
  8. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/456510
推荐阅读
相关标签
  

闽ICP备14008679号