是一个用于创建单链表的函数。单链表是一种常见的数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。
在创建单链表时,需要定义一个头节点,并将其指针指向NULL,表示链表为空。然后,逐个添加节点到链表中,直到达到所需的节点数量或者输入结束。
以下是一个示例的单链表创建函数C的实现:
#include <stdio.h>
#include <stdlib.h>
// 定义单链表节点结构
typedef struct Node {
int data; // 数据元素
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建单链表函数
Node* createLinkedList(int n) {
Node* head = NULL; // 头节点指针
Node* temp = NULL; // 临时节点指针
// 创建头节点
head = (Node*)malloc(sizeof(Node));
if (head == NULL) {
printf("内存分配失败!\n");
return NULL;
}
// 输入第一个节点的数据
printf("请输入第1个节点的数据:");
scanf("%d", &(head->data));
head->next = NULL;
// 创建剩余节点
for (int i = 2; i <= n; i++) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("内存分配失败!\n");
return NULL;
}
// 输入节点数据
printf("请输入第%d个节点的数据:", i);
scanf("%d", &(newNode->data));
newNode->next = NULL;
// 将新节点连接到链表尾部
temp = head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
return head;
}
// 打印单链表函数
void printLinkedList(Node* head) {
Node* temp = head;
printf("单链表的数据元素为:");
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
int main() {
int n;
Node* head;
printf("请输入单链表的节点数量:");
scanf("%d", &n);
head = createLinkedList(n);
printLinkedList(head);
return 0;
}
该示例中,首先定义了一个单链表节点结构体Node
,包含数据元素data
和指向下一个节点的指针next
。然后,通过createLinkedList
函数创建单链表,该函数接受一个参数n
表示节点数量。在函数内部,首先创建头节点,并输入第一个节点的数据。然后,使用循环创建剩余节点,并将它们连接到链表尾部。最后,返回头节点指针。printLinkedList
函数用于打印单链表的所有数据元素。
这是一个简单的单链表创建函数C的实现,可以根据实际需求进行修改和扩展。腾讯云提供了多种云计算相关产品,如云服务器、云数据库、云存储等,可以根据具体场景选择适合的产品。
领取专属 10元无门槛券
手把手带您无忧上云