下面是一个C语言建立单链表的完整代码示例:
#include <stdio.h>#include <stdlib.h>// 定义链表节点结构struct Node { int data; struct Node* next;};// 在链表末尾插入新节点void insertAtEnd(struct Node** head, int newData) { // 创建新节点 struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = newData; newNode->next = NULL; // 如果链表为空,则将新节点作为头节点 if (*head == NULL) { *head = newNode; return; } // 遍历链表直到最后一个节点 struct Node* temp = *head; while (temp->next != NULL) { temp = temp->next; } // 在链表末尾插入新节点 temp->next = newNode;}// 打印链表的元素void printList(struct Node* node) { while (node != NULL) { printf("%d ", node->data); node = node->next; } printf("\n");}int main() { struct Node* head = NULL; // 初始化头节点 // 在链表末尾插入元素 insertAtEnd(&head, 1); insertAtEnd(&head, 2); insertAtEnd(&head, 3); insertAtEnd(&head, 4); insertAtEnd(&head, 5); // 打印链表元素 printList(head); return 0;}这段代码首先定义了一个链表节点结构Node,其中包含数据域data和指向下一个节点的指针next。
然后,通过insertAtEnd函数在链表末尾插入新节点。该函数首先创建一个新节点,并将新节点的数据域设置为newData,将新节点的指针域next设置为NULL。
如果链表为空,则将新节点作为头节点。否则,遍历链表直到最后一个节点,然后将新节点插入到最后一个节点的next指针。
最后,通过printList函数打印链表的元素。该函数遍历链表,并依次打印每个节点的数据域。

