gpt4 book ai didi

C链表使用tail在末尾插入节点

转载 作者:行者123 更新时间:2023-11-30 20:29:59 26 4
gpt4 key购买 nike

在主函数中,我使用函数创建了头部和推前部,并且它按预期工作。

但是,使用该函数在创建的节点末尾添加信息后,却没有。

推回的数据不会附加到链表中。

下面是我的代码;

// function pushback using tail   
void push_back_t(Node *tail, int data) {
Node *Sn = (Node*)malloc(sizeof(Node)); //creation of the new node called Sn
if (Sn == NULL) {
printf("Erreur");
exit(3);
}
Sn->data = data; //to add the data to the new node
Sn->Next = NULL;
tail->Next = Sn; //make the last Node that tail already point points on the new node
tail = Sn; //make tail to the last and new node
}

我做错了什么以及如何解决它?

最佳答案

您必须更新调用代码中的tail。或者,您可以将指针传递给 tail 指针:

// function pushback using tail   
void push_back_t(Node **tail, int data) {
Node *Sn = (Node *)malloc(sizeof(Node)); //creation of the new node called Sn
if (Sn == NULL) {
printf("Erreur");
exit(3);
}
Sn->data = data; //to add the data to the new node
Sn->Next = NULL;
if (*tail) {
(*tail)->Next = Sn; //make the last Node that tail already point points on the new node
}
*tail = Sn; //make tail point to the new last node
}

关于C链表使用tail在末尾插入节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55548126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com