用c语言建立一个单向链表,并从键盘输入元素的值
时间: 2024-02-13 14:06:27 浏览: 124
好的,以下是一个用 C 语言实现基本单向链表的示例,从键盘输入元素的值:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
struct Node {
int data;
struct Node* next;
};
// 创建一个链表节点
struct Node* createNode(int data) {
struct Node* node = (struct Node*) malloc(sizeof(struct Node));
node->data = data;
node->next = NULL;
return node;
}
// 添加节点到链表末尾
void addNode(struct Node** head, int data) {
struct Node* newNode = createNode(data);
if (*head == NULL) {
*head = newNode;
return;
}
struct Node* lastNode = *head;
while (lastNode->next != NULL) {
lastNode = lastNode->next;
}
lastNode->next = newNode;
}
// 打印链表
void printList(struct Node* head) {
struct Node* currentNode = head;
while (currentNode != NULL) {
printf("%d ", currentNode->data);
currentNode = currentNode->next;
}
printf("\n");
}
int main() {
// 初始化链表
struct Node* head = NULL;
// 输入元素的值并添加到链表
int n, data;
printf("请输入元素的个数:");
scanf("%d", &n);
printf("请输入%d个元素的值:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &data);
addNode(&head, data);
}
// 打印链表
printf("链表的值为:");
printList(head);
return 0;
}
```
在这个示例中,定义了一个 `Node` 结构体来表示链表中的每个节点。每个节点包含一个 `data` 属性来存储该节点的值,以及一个 `next` 属性来指向下一个节点。然后,定义了一个 `createNode` 函数用于创建新的链表节点。`addNode` 函数用于向链表中添加新节点。`printList` 函数用于打印链表中的所有节点的值。
在主程序中,首先初始化了一个空链表 `head`。然后从键盘输入元素的数量 `n`,再输入 `n` 个元素的值,并将它们添加到链表中。最后使用 `printList` 函数打印链表中的所有节点的值。
阅读全文