cpp输入n个元素,创建有序链表并输出
时间: 2024-11-06 17:16:28 浏览: 7
在C++中,为了创建一个有序链表并输入n个元素,你可以按照以下步骤进行:
首先,你需要定义一个节点类`Node`,用于表示链表中的单个元素,并包含一个指向下一个节点的指针。
```cpp
class Node {
public:
int data;
Node* next;
// 构造函数
Node(int value) : data(value), next(nullptr) {}
};
```
接着,定义一个链表类`LinkedList`,其中包含头结点和辅助方法用于添加新元素、排序以及输出链表。
```cpp
class LinkedList {
private:
Node* head;
public:
LinkedList() : head(nullptr) {}
// 添加元素并自动排序
void insertAndSort(int value) {
if (head == nullptr || head->data > value) {
head = new Node(value);
} else {
Node* current = head;
while (current->next != nullptr && current->next->data < value) {
current = current->next;
}
Node* newNode = new Node(value);
newNode->next = current->next;
current->next = newNode;
}
}
// 输出链表
void printList() {
Node* temp = head;
while (temp) {
std::cout << temp->data << " -> ";
temp = temp->next;
}
std::cout << "nullptr" << std::endl;
}
};
```
现在你可以从用户那里获取输入n,然后循环n次插入元素并打印链表:
```cpp
int main() {
int n;
std::cout << "Enter the number of elements: ";
std::cin >> n;
LinkedList list;
for (int i = 0; i < n; ++i) {
int value;
std::cout << "Enter element " << (i + 1) << ": ";
std::cin >> value;
list.insertAndSort(value); // 插入并排序
}
list.printList(); // 打印链表
return 0;
}
```
当你运行这个程序时,它将提示用户输入n个数字,然后创建一个有序链表并显示结果。
阅读全文