Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在指针列表的末尾添加一个元素?_C_List_Pointers_Linked List_Append - Fatal编程技术网

C 如何在指针列表的末尾添加一个元素?

C 如何在指针列表的末尾添加一个元素?,c,list,pointers,linked-list,append,C,List,Pointers,Linked List,Append,我不熟悉C和指针操作。因此,如果我想在列表的末尾添加一个元素,我该如何管理它呢?我试过node*temp=*head保存磁头地址而不进行更改。然后while(temp){temp=temp->next}。显然,临时工只得到一份浅薄的副本。如何实现此功能。多谢各位 您应该首先遍历到原始列表的末尾(基于最后一个列表的下一个是NULL)。然后简单地将它添加到那里 像这样: void add_end(node** head, node* new_node) { if(*head==NULL)

我不熟悉C和指针操作。因此,如果我想在列表的末尾添加一个元素,我该如何管理它呢?我试过
node*temp=*head
保存磁头地址而不进行更改。然后
while(temp){temp=temp->next}
。显然,临时工只得到一份浅薄的副本。如何实现此功能。多谢各位

您应该首先遍历到原始列表的末尾(基于最后一个列表的下一个是
NULL
)。然后简单地将它添加到那里

像这样:

void add_end(node** head, node* new_node)
{
    if(*head==NULL)
    {
        *head=new_node;
        new_node->next=NULL;
    }else
    {

    }
}
new_node->next=NULL;
if(*head==NULL)//空列表
{
*head=新的_节点;
}
else//不为空,遍历到末尾并添加
{
节点*当前=*头部;
while(当前->下一步)//下一步;
}    

当前->下一步=新建_节点;// 您应该首先遍历到原始列表的末尾(基于最后一个列表的下一个是
NULL
)。然后简单地将它添加到那里

像这样:

void add_end(node** head, node* new_node)
{
    if(*head==NULL)
    {
        *head=new_node;
        new_node->next=NULL;
    }else
    {

    }
}
new_node->next=NULL;
if(*head==NULL)//空列表
{
*head=新的_节点;
}
else//不为空,遍历到末尾并添加
{
节点*当前=*头部;
while(当前->下一步)//下一步;
}    

当前->下一步=新建_节点;//投资一张纸和一支铅笔。开始在纸上画一个链表,以便更好地理解。买一张纸和一支铅笔。开始在纸上画一个链表的表示,以便更好地理解。实现中存在一个错误:当链表为空时,没有指定头。current没有指向head,它只是指向同一个位置。实现中有一个bug:当列表为空时,head没有被分配。电流不是指向头部,而是指向同一个地方。