C++ 课程作业 群体类和群体数据的组织 ( 链表类模板设计)

首先是题目
【问题描述】

请设计一个链表类模板,实现链表的初始化、插入、删除和打印操作。

【输入形式】
输入包括3行。
第一行是链表元素个数n。第二行为n个元素的值。第三行为拟删除的数据位置。
【输出形式】
输出格式不固定。具体参见样例。

【样例输入1】
4
1 2 3 4
2
【样例输出1】
Origin Length:4
data:1 2 3 4
Delete the data at position(2):2
New Length:3
data:1 3 4

【样例输入2】
2
100 -1
3
【样例输出2】
Origin Length:2
data:100 -1
pos > len, failed

【样例输入3】
8
8 7 6 5 4 3 2 1
0
【样例输出3】
Origin Length:8
data:8 7 6 5 4 3 2 1
pos <= 0, failed

然后是部分代码

#include 
#include 
using namespace std;
template <typename T>//定义一个模板
struct node
{
    T data;
    node<T>* next;
};//使用T是是不需要加typedef的 
//每个涉及到节点的创建都需要加node,如node p;
template <typename T>
class linkedList
{
public:
    linkedList();
    virtual ~linkedList();
    void insert(T value);
    bool initiate();
    bool isEmpty();
    bool remove(int pos, T& value);
    void print();
    int Length();//返回单链表长度。如果是单链表为空,则返回-1
private:
    node<T>* head;
    int len;
};

//该类使用了T所以该类的所有函数的实现前都需要加上template ,以及函数名的实现要变成如void linkedList::insert(T value)的形式
其他就与之前的链表类的设计没什么区别了
具体代码实现部分可参考:https://download.csdn.net/download/salix_mark/12469972

你可能感兴趣的:(C++ 课程作业 群体类和群体数据的组织 ( 链表类模板设计))