设计一个简单的单向链表类模板 List,并进行测试
时间: 2024-05-03 13:21:01 浏览: 82
好的,我可以帮你设计一个简单的单向链表类模板 List 并进行测试。以下是代码实现:
```cpp
template<typename T>
class ListNode {
public:
T val;
ListNode* next;
ListNode(T x) : val(x), next(nullptr) {}
};
template<typename T>
class List {
private:
ListNode<T>* head;
public:
List() : head(nullptr) {}
void insert(T val) {
ListNode<T>* newNode = new ListNode<T>(val);
if (!head) {
head = newNode;
} else {
ListNode<T>* current = head;
while (current->next) {
current = current->next;
}
current->next = newNode;
}
}
void print() {
ListNode<T>* current = head;
while (current) {
std::cout << current->val << " ";
current = current->next;
}
std::cout << std::endl;
}
};
int main() {
List<int> list;
list.insert(1);
list.insert(2);
list.insert(3);
list.print();
return 0;
}
```
在这个模板类中,我们定义了一个节点类 `ListNode`,包含一个属性 `val` 和一个指向下一个节点的指针 `next`。接着我们定义了链表类 `List`,包含一个指向链表头部的指针 `head`,以及函数 `insert` 和 `print`。其中 `insert` 函数是向链表中插入一个值,`print` 函数则是遍历链表并打印值。
为了测试 List 类的功能,我们在 `main` 函数中创建了一个 `List<int>` 的实例,向其中插入了整数 1、2、3,然后输出链表中的所有值。
希望这个例子能够帮助你理解单向链表的概念。如果你有任何其他问题,欢迎继续提问。
阅读全文