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;
    }

  • 相关阅读:
    Operator开发实例
    Go构建HTTP服务
    Go依赖包的管理
    Go并发编程机制
    Go语言的基础数据类型
    k8s的APIServer流程介绍
    promise、resolve、reject、拦截响应
    AngularJS中service,factory,provider的区别
    scope
    sass入门
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6972513.html
Copyright © 2011-2022 走看看