假期day4,链表增加与删除(2024/2/5)

单链表头插增加

Linklist insert_head(datatype element,Linklist head)
{
   
    //创建新节点
Linklist s=create_node();
    if(NULL==s)
    return head;
s->data=element;

    //1,判断链表为空
    if(NULL==head)
    {
   
    head=s;
    }
    else //链表不为空
    {
   
    s->next=head;
    head=s;
    }

    return head;
}

单链表头删除

Linklist delete_head(Linklist head)
{
   
    //1,判断链表为空
    if(NULL==head)
    {
   
        return head;
    }
    else //链表存在1个或多个节点
    {
   
        Linklist del=head;
        head=head->next;
        free(del);
        del=NULL;
    }

    return head;
}

单链表删除指定位置

Linklist delete_pos(int pos,Linklist head)
{
   
    //1,判断位置是否合法
    //2,判断链表为空
    if(NULL==head || pos<1 || pos>Length(head))
    {
   
        return head;
    }
    //3,判断是否只有一个节点,删除第一个位置
    if(head->next==NULL ||pos==1)
    {
   
        head=delete_head(head);
    }
    else //存在多个节点 >=2
    {
   
    //找到pos-1位置的节点
    Linklist p=head;
    for(int i=1;i<pos-1;i++)
    {
   
        p=p->next;
    }
    //删除p->next
    Linklist q=p->next;
    p->next=q->next;
    free(q);q=NULL;
    }
    return head;
}

双链表头插

Doublelink double_insert_head(datatype element,Doublelink head)
{
   
    //创建新节点s
    Doublelink s=create_node();
    if(s==NULL)
        return head;
    strcpy(s->data,element);

    //1.判断链表为空
    if(NULL ==head)
        head=s;
    //2.存在多个节点>=1
    else
    {
   
        s->next=head;
        head->priv=s;
        head=s;
    }
    return head;

}

双链表头删除

Doublelink delete_rear(Doublelink head)
{
   
    //1,判断链表为空
    if(NULL ==head)
        return head;
    //2,只有一个节点
    if(head->next==NULL)
    {
   
        free(head);head=NULL;
    }
    else //>=2
    {
   
        //找到最后一个节点
        Doublelink p=head;
        while(p->next!=NULL)
        {
   
            p=p->next;
        }
        p->priv->next=NULL;
        free(p);
        p=NULL;
    }
    return head;
}

最近更新

  1. TCP协议是安全的吗?

    2024-02-09 17:10:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-09 17:10:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-09 17:10:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-09 17:10:01       20 阅读

热门阅读

  1. Kylin下Qt找不到打印机解决方案

    2024-02-09 17:10:01       24 阅读
  2. C++ 设计模式之观察者模式

    2024-02-09 17:10:01       29 阅读
  3. 浅谈欧拉函数

    2024-02-09 17:10:01       27 阅读
  4. QT基础教程(全系列教程目录)

    2024-02-09 17:10:01       27 阅读
  5. C语言位域(Bit Fields)知识点精要解析

    2024-02-09 17:10:01       20 阅读