C:数据结构:双向链表

本文详细介绍了C语言中双向链表的实现,包括普通双向链表和双向循环链表的各种操作,如头插法、尾插法、遍历、查询、删除、指定位置添加、移动和摧毁结点等,并强调了在不同操作中应注意的细节,如结点的前驱和后继的处理。
摘要由CSDN通过智能技术生成

1双向链表

链表的操作有 链表的操作有 头插法、尾插法、遍历链表、查询结点、删除结点、指定位置添加结点、移动结点,注意 结点的前驱后继

结构体:双向链表有前驱prev和后继next

typedef struct double_node
{
    char data[DATA_LEN];
    struct double_node *next;
    struct double_node *prev;
} node, *link_n;

1.1普通双向链表

创建结点:

link_n Creat_Head_Node()
{
    link_n new_node = (link_n)malloc(sizeof(node)); // 失败返回null
    if (new_node == (link_n)NULL)
    {
        perror("malloc....");
        return (link_n)-1; // 结点创建失败  返回 -1
    }
    memset(new_node, 0, sizeof(node));
    new_node->next = NULL;    //都指向NULL
    new_node->prev = NULL;

    return new_node;
}

①头插法 √

int Head_Add_Link_List_Node(link_n head_node)
{
    // null 是判断传参是否正常  与create_link_list_node函数无关
    if (head_node == (link_n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值