C语言中,从键盘输入十个数,按输入时的逆序建立单链表
时间: 2024-10-13 07:16:49 浏览: 7
在C语言中,要实现这个功能,首先你需要创建一个链表节点结构,并定义一个函数来添加元素到链表的末尾。然后你可以通过循环从键盘接收用户的输入,将每个数字存储到新创建的节点中,并将其链接到列表的尾部。这里是一个简单的步骤说明:
1. **定义链表节点**:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
```
2. **初始化链表头指针**:
```c
Node* head = NULL;
```
3. **添加元素函数(reverseInsertion)**:
```c
void reverseInsertion(Node** head, int num) {
if (*head == NULL) {
*head = (Node*)malloc(sizeof(Node));
(*head)->data = num;
(*head)->next = NULL;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = (Node*)malloc(sizeof(Node));
temp->next->data = num;
temp->next->next = NULL;
}
}
```
4. **主程序**:
```c
int main() {
for (int i = 0; i < 10; i++) {
printf("请输入第 %d 个数: ", i + 1);
int input;
scanf("%d", &input);
reverseInsertion(&head, input); // 反向插入
}
// 打印链表(这里简化处理,实际项目可能需要额外的遍历函数)
Node* current = head;
while (current != NULL) {
printf("%d -> ", current->data);
current = current->next;
}
printf("NULL\n");
return 0;
}
```
当你运行这个程序时,它会依次询问用户输入10个数字,并以输入时的逆序构建链表。