zoukankan      html  css  js  c++  java
  • 双链表删除/插入节点

    惊恐//双链表删除节点
    dnode *del(dnode *head, int num)
    {
    dnode *p1, *p2;
    p1 = head;
    while (num != p1->data && p1->next != NULL)
    {
    p1 = p1->next;
    }
    if (num == p1->data)
    {
    if (p1 == head)
    {
    head = head->next;
    head->pre = NULL;
    free(p1);
    }
    else if (p1->next == NULL)
    {
    p1->pre->next = NULL;
    free(p1);
    }
    else
    {
    p1->next->pre = p1->pre;
    p1->pre->next = p1->next;
    free(p1);
    }
    }
    else
    printf(" %d could not been found", num);
    return (head);

    }

    惊恐//双链表插入节点
    dnode * insert(dnode *head, int num)
    {
    dnode *p0, *p1;
    p1 = head;
    p0 = (dnode *)malloc(sizeof(dnode));
    p0->data = num;
    while (p0->data > p1->data && p1->next != NULL)
    {
    p1 = p1->next;
    }
    if (p0->data <= p1->data)
    {
    if (head == p1)
    {
    p0->next = p1;
    p1->pre = p0;
    head = p0;
    }
    else
    {
    p1->pre->next = p0;
    p0->next = p1;
    p0->pre = p1->pre;
    p1->pre = p0;
    }
    }
    else
    {
    p1->next = p0;
    p0->pre = p1;
    p0->next = NULL;
    }
    return head;
    }
    int main()
    {
    dnode *head, stud;
    int n, del_num, insert_num;
    head = creat();
    print(head);
    cout << " Int:";
    cin >> del_num;
    head = del(head, del_num);
    print(head);
    cout << " please input the insert data:";
    cin >> insert_num;
    head = insert(head, insert_num);
    print(head);
    return 0;
    }

  • 相关阅读:
    14-Reverse Integer
    13.Merge k Sorted Lists
    12-Add Digits
    11-String to Integer (atoi)
    10.Power of Two-Leetcode
    9. Delete Node in a Linked List
    使用Openmp并行化
    C++编译过程与内存空间
    C++栈溢出
    程序(进程)内存空间分布深入理解
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6972513.html
Copyright © 2011-2022 走看看