#ifndefLINKLIST_H#defineLINKLIST_H#include<iostream>usingnamespace std;template<classT>structNode{
T data;
Node<T>*next;};template<classT>classLinkList{public:LinkList();LinkList(T a[],int n);~LinkList();intLength();
T Get(int pos);intLocate(T x);voidInsert(int i, T item);
T Delete(int i);voidPrintList();private:
Node<T>*head;};#endif
2. LinkList.cpp
#define_CRT_SECURE_NO_WARNINGS1#include"LinkList.h"template<classT>LinkList<T>::LinkList(){
head =new Node<T>;
head->next =NULL;}template<classT>LinkList<T>::LinkList(T a[],int n){
Node<T>* rear,*s;
head =new Node<T>;
rear = head;for(int i =0; i < n; i++){
s =new Node<T>;
s->data = a[i];
rear->next = s;
rear = s;}
rear->next =NULL;}template<classT>
LinkList<T>::~LinkList(){
Node<T>*p = head;while(p){
Node<T>*q = p;
p = p->next;delete q;}
head =NULL;}template<classT>intLinkList<T>::Length(){int num =0;
Node<T>*p = head->next;while(p){
p = p->next;
num++;}return num;}template<classT>
T LinkList<T>::Get(int pos){
Node<T>*p = head->next;int j =1;while(j < pos&&p){
p = p->next;
j++;}if(!p&&j>pos){
cerr <<"查找位置非法\n";exit(-1);}else{return p->data;}}template<classT>intLinkList<T>::Locate(T x){
Node<T>*p = head->next;int j =1;while(p&&p->data != x){
p = p->next;
j++;}if(p)return j;elsereturn0;}template<classT>voidLinkList<T>::Insert(int i, T item){
Node<T>*p = head;int j =0;while(p&&j < i -1){
p = p->next;
j++;}if(!p){
cerr <<"输入非法\n";exit(-1);}else{
Node<T>*s =new Node<T>;
s->data = item;
s->next = p->next;
p -> next = s;}}template<classT>
T LinkList<T>::Delete(int i){
Node<T>*p = head;int j =0;int x =0;while(j < i -1&& p){
p = p->next;
j++;}if(!p&&!p->next){
cerr <<"输入非法\n";exit(-1);}else{
Node<T>*q = p->next;
x = q->data;
p->next = q->next;delete q;return x;}}template<classT>voidLinkList<T>::PrintList(){
Node<T>*p = head->next;while(p){
cout << p->data <<" ";
p = p->next;}
cout << endl;}