C语言中,从键盘输入十个数,按输入时的逆序建立带头结点的单链表
时间: 2024-10-14 20:03:34 浏览: 36
在C语言中,为了从键盘输入十个数并按照输入的逆序创建一个带头结点的单链表,你可以按照以下步骤操作:
1. 定义一个结构体`Node`表示链表节点,包含整数值和指向下一个节点的指针。
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
```
2. 创建一个头结点,并初始化为`NULL`。
```c
Node* head = NULL;
```
3. 编写一个函数,如`getNumbers()`,用于获取用户输入并添加到链表中。首先,提示用户输入数字,并使用`scanf()`读取。
```c
void getNumbers(Node** head) {
Node* current = *head; // 初始化current为头结点
for (int i = 0; i < 10; i++) {
int num;
printf("请输入第 %d 个数: ", i + 1);
scanf("%d", &num);
// 创建新节点并将数据存入
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = num;
// 如果是第一个节点,直接设next为当前节点
if (!*head) {
*head = newNode;
} else {
// 否则,将新节点插入到列表末尾
while (current->next) {
current = current->next;
}
current->next = newNode;
}
// 更新current以遍历到下一个位置
current = newNode;
}
}
```
4. 在主程序中调用`getNumbers(&head)`传递头结点地址。
5. 最后,你可以添加一些辅助函数(如`printList()`)来遍历并打印链表验证结果,但在上述代码中并未包含。
阅读全文