#include <iostream>
using std::cout;
using std::endl;
template <typename T>
struct ListNode
{
T data;
ListNode<T>* link;
};
template <typename T>
class List
{
private:
ListNode<T>* head;
public:
List();
int len(); //获取链表的长度
ListNode<T>* get(int pos); //按序号查找节点
void add(int pos, T theData); //任意位置添加节点
void del(int pos); //删除任意位置的节点
void clc(); //清空链表
};
#include "List.h"
template <typename T>
List<T>::List() { head = nullptr; }
//-----获取链表的长度-----------------------------------//
template <typename T>
int List<T>::len()
{
if (head == nullptr)
return 0; //头指针为空的话返回0
else
{
int count = 0;
ListNode<T>* node = head;
while (node != nullptr)
{
count++;
node = node->link;
}
return count; //返回节点个数
}
}
//-----按序