C语言链表节点追加函数:AppendNode() 的实现
这段代码实现了向链表末尾添加一个新节点的功能。
首先通过malloc函数分配了一个新节点的内存空间,然后判断链表是否为空,若为空则将新节点作为头节点。若不为空,则需要找到链表的末尾,并将新节点链接在末尾节点的后面。最后返回链表的头节点。
struct Node* AppendNode(struct Node* CurrentNode, char* Bookname, int BookNumber, float Bookprice)
{
struct Node* pnewNode = NULL;
struct Node* ptempNode = NULL;
struct Node* pheadNode = CurrentNode;
pnewNode = (struct Node*)malloc(sizeof(struct Node));
if (pnewNode == NULL)
{
printf("mem error");
return pnewNode;
}
if (CurrentNode == NULL) {
CurrentNode = pnewNode;
}
else {
}
return CurrentNode;
}
代码分析:
- 内存分配:
pnewNode = (struct Node*)malloc(sizeof(struct Node));使用malloc函数为新节点分配内存空间,并将其地址赋给指针pnewNode。 - 空链表判断:
if (CurrentNode == NULL) {...}检查当前链表是否为空。如果是空链表,则将新节点设置为头节点CurrentNode = pnewNode;。 - 非空链表处理:
else {...}如果链表不为空,则需要找到链表的末尾节点,并将新节点链接到末尾。这部分代码需要循环遍历链表,直到找到末尾节点。 - 返回头节点:
return CurrentNode;函数返回链表的头节点,以便用户可以继续操作链表。
注意: 代码中 else 部分代码块目前为空,需要根据具体的链表结构和节点定义进行补充。例如,可以使用循环遍历链表,找到最后一个节点,并将新节点链接到该节点的 next 指针上。
原文地址: https://www.cveoy.top/t/topic/nK6G 著作权归作者所有。请勿转载和采集!