admin 管理员组文章数量: 887021
2024年1月23日发(作者:substring的用法 mysql用不了)
在C语言中,可以使用结构体和链表来实现一个简单的链表。以下是一个示例:
c复制代码
#include
#include
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 定义链表结构体
typedef struct LinkedList {
Node* head;
Node* tail;
} LinkedList;
// 创建新节点
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
if(newNode == NULL) {
printf("Memory allocation failedn");
exit(0);
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 在链表末尾添加节点
void addNode(LinkedList* list, int data) {
Node* newNode = createNode(data);
if(list->head == NULL) {
list->head = newNode;
list->tail = newNode;
} else {
list->tail->next = newNode;
list->tail = newNode;
}
}
// 打印链表中的所有节点
void printList(LinkedList* list) {
Node* temp = list->head;
while(temp != NULL) {
printf("%d -> ", temp->data);
temp = temp->next;
}
printf("NULLn");
}
int main() {
LinkedList list;
= NULL;
= NULL;
addNode(&list, 1); // 在链表末尾添加节点1
addNode(&list, 2); // 在链表末尾添加节点2
addNode(&list, 3); // 在链表末尾添加节点3
printList(&list); // 打印链表中的所有节点,输出应为3 -> 2 -> 1 -> NULL
return 0;
}
在这个示例中,我们首先定义了两个结构体,一个用于表示链表中的节点,另一个用于表示整个链表。然后,我们定义了一些函数来创建新节点、在链表末尾添加节点和打印链表中的所有节点。最后,在main函数中,我们创建了一个空的链表,并使用这些函数向其中添加了一些节点,并打印出了整个链表。
版权声明:本文标题:c语言结构体链表实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705961618h495817.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论