用C++设计一个List类,构造函数随机生成一组关键字序列
时间: 2024-02-15 13:01:26 浏览: 77
以下是一个简单的 C++ List 类的实现,其中构造函数使用 `rand` 函数随机生成一组关键字序列。
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
template <typename T>
class List {
public:
List() {
srand(time(nullptr));
int n = rand() % 10 + 1; // 随机生成 1~10 个元素
for (int i = 0; i < n; i++) {
T val = rand() % 100; // 随机生成 0~99 的整数
insert(val);
}
}
void insert(T val) {
Node* p = new Node(val);
if (head == nullptr) { // 如果链表为空,直接插入
head = p;
}
else { // 否则在链表尾部插入
Node* tail = head;
while (tail->next != nullptr) {
tail = tail->next;
}
tail->next = p;
}
}
void print() {
Node* p = head;
while (p != nullptr) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
private:
struct Node {
T val;
Node* next;
Node(T val) : val(val), next(nullptr) {}
};
Node* head = nullptr;
};
int main() {
List<int> mylist;
mylist.print();
return 0;
}
```
在这个示例中,我们使用 `template` 实现了一个通用的 List 类,其中 `insert` 函数在链表尾部插入新节点,`print` 函数遍历并输出链表中的元素。在构造函数中,我们使用 `rand` 函数随机生成一组关键字序列,并插入到链表中。在主函数中,我们创建一个 `List<int>` 对象 `mylist`,并调用 `print` 函数输出链表中的元素。
阅读全文