本项目旨在创建一个灵活且高效的C++模板类链表。通过使用泛型编程技术,该链表能够支持任何数据类型的存储和管理,为用户提供强大的数据结构工具。
面向对象程序设计课程作业要求如下:
1. 创建一个数据类型为T的链表类模板List,并实现以下成员函数:
- 默认构造函数List():将该链表初始化为空(占总分10%)
- 拷贝构造函数List(const List& list):根据给定的链表创建当前对象,确保深拷贝(占总分10%)
- 析构函数~List():释放所有节点以防止内存泄漏(占总分10%)
- Push_back(T e)成员函数:在链表末尾插入元素e(占总分10%)
- operator<<友元函数:按顺序输出链表中的所有元素(占总分10%)
- operator=()重载操作符,实现两个对象的赋值功能(占总分10%)
- operator+()成员函数:连接两个列表A=B+C,并返回结果给A (占总分10%)
2. 编写main函数以测试上述类模板的功能:
1) 定义一个List类型的对象int_listB,从键盘读取m个整数并依次插入到链表中;
2) 类似地定义另一个List类型对象int_listC,并输入n个整数进行相同操作;
3) 创建一个新的列表int_listA,并使用operator=()实现 A = B + C的操作;
4) 使用cout输出整个int_listA链表中的所有元素。
5) 对于double类型的测试,定义List类型对象 double_listA, double_listB 和 double_listC 并重复上述操作。
3. 输入与预期的输出格式如下:
- 输入样例:
```
4
12 23 34 45
3
56 67 78
3
1.2 2.3 3.4
4
4.5 5.6 6.7 7.8
```
- 输出样例:
```
12 23 34 45 56 67 78
1.200000e+00,2.300000e+00,3.400000e+00,4.5,5.6,6.7,7.8
```