对任意输入的一组数据,建立一个递增有序的单链表,用C++表示
时间: 2023-05-12 11:03:45 浏览: 148
可以使用以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node *next;
} Node;
// 插入节点到链表中
void insert(Node **head, int data) {
Node *new_node = (Node*)malloc(sizeof(Node));
new_node->data = data;
new_node->next = NULL;
if (*head == NULL) {
*head = new_node;
} else {
Node *current = *head;
while (current->next != NULL && current->next->data < data) {
current = current->next;
}
new_node->next = current->next;
current->next = new_node;
}
}
// 打印链表
void print_list(Node *head) {
Node *current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
int main() {
Node *head = NULL;
int data;
// 输入数据,插入到链表中
while (scanf("%d", &data) != EOF) {
insert(&head, data);
}
// 打印链表
print_list(head);
return 0;
}
```
这个程序可以读入任意数量的整数,然后将它们插入到一个递增有序的单链表中,并打印出链表中的所有元素。
阅读全文