首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在一个函数create_new_node中连接一个节点的所有链接?

是否可以在一个函数create_new_node中连接一个节点的所有链接?
EN

Stack Overflow用户
提问于 2019-01-28 21:23:42
回答 3查看 59关注 0票数 1

我正在学习链表,我只是想知道用*create_new函数连接一个新节点的所有链接是否是好的或坏的做法。

从我在网上读到的,他们只有下一个链接,但我想让它也连接上一个链接。下面是我的代码:

代码语言:javascript
运行
复制
node *create_new (int new_data, node *prev, node *next)
{
node *new_node = malloc(sizeof(node));
if (new_node == NULL)
{
    printf("Error in creating new node\n");
    exit(0);
}

new_node->data = new_data;
new_node->next = next;
prev->next = new_node;

return new_node;
}
EN

回答 3

Stack Overflow用户

发布于 2019-01-28 21:38:31

您的代码可以正常工作。但是,对于单链接列表,您不需要传递next,因为prev->next应该指向next

代码语言:javascript
运行
复制
node *create_new (int new_data, node *prev)
{
    node *new_node = malloc(sizeof(node));
    if (new_node == NULL)
    {
        printf("Error in creating new node\n");
        exit(0);
    }

    new_node->data = new_data;
    new_node->next = prev->next;
    prev->next = new_node;

    return new_node;
}
票数 2
EN

Stack Overflow用户

发布于 2019-01-28 21:29:31

允许将单元格插入到双重链表(如std:: list )中,或者用新的单元格替换连续的单元格

如果下一步是prev->next,您需要在它们之间插入新的单元格。

如果prev->next不是next,那么它们之间的所有单元格都会被新的单元格替换(并且可能会丢失,不会被删除)

如果你有n0<->n2<->n3create_new(1, n0, n2),你就会有n0<->n1<->n2<->n3,但是如果你现在有create_new(7, n0, n3),你就会有n0<->n7<>n3,单元格n1和n2会被删除(可能会丢失)

所以有一件事是肯定的:它的名字是错误的,因为它更像是replaceBetween

票数 1
EN

Stack Overflow用户

发布于 2019-01-28 21:29:41

  • 简单链表的节点只有一个指向下一个节点的指针。
  • 双向链表的节点有两个指针:一个指向下一个节点,另一个指向上一个节点。

我假设你在网上读过关于简单链表的文章(默认情况下,当人们谈论链表时,它们就是简单链表)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54402984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档