<span style="font-family:Courier New;font-size:18px;">#include <iostream>
using namespace std;
template <typename DT>
class LinkedList
{
private:
struct Node
{
DT info;
Node *next;
};
Node *head;
public:
LinkedList();
~LinkedList();
Node* locate(int index);
void insert(DT element,int index);
void add(DT element);
void remove(int index);
void empty();
void find();
DT get(int index);
void set(DT value,int index);
void traversal();
};
template<typename DT>
LinkedList<DT>::LinkedList()
{
head = new Node;
head->next=NULL;
cout<<"construct ok"<<endl;
}
template<typename DT>
LinkedList<DT>::~LinkedList(){}
template<typename DT>
typename LinkedList<DT>::Node* LinkedList<DT>::locate(int index)
{
Node *previous=head;
int i=0;
while(previous->next!=NULL && i<index){
previous=previous->next;
i++;
}
return previous;
}
template<typename DT>
void LinkedList<DT>::insert(DT element,int index)
{
Node *previous=locate(index);
Node *NNode = new Node;
NNode->info=element;
NNode->next=previous->next;
previous->next=NNode;
}
template<typename DT>
void LinkedList<DT>::remove(int index)
{
Node *previous=locate(index);
Node *position=previous->next;
previous->next=previous->next->next;
delete position;
}
template<typename DT>
void LinkedList<DT>::empty()
{
Node *p=head;
while(p->next!=NULL){
remove(0);
}
cout<<"empty!"<<endl;
}
template<typename DT>
void LinkedList<DT>::add(DT element)
{
Node *p=head;
int length=0;
while(p->next!=NULL){
p=p->next;
length++;
}
insert(element,length);
}
template<typename DT>
DT LinkedList<DT>::get(int index)
{
Node *previous=locate(index);
Node *position=previous->next;
return position->info;
}
template<typename DT>
void LinkedList<DT>::set(DT value,int index)
{
Node *previous=locate(index);
Node *position=previous->next;
position->info=value;
}
template<typename DT>
void LinkedList<DT>::traversal()
{
Node *p=head;
while(p->next!=NULL){
cout<<p->next->info<<" ";
p=p->next;
}
}
int main()
{
cout<<"main start..."<<endl;
int initArray[10]={8,5,4,33,22,66,91,12,23,64};
LinkedList<int> intL;
for(int i=0;i<10;i++){
intL.add(initArray[i]);
}
intL.set(88,0);
intL.set(44,2);
intL.set(46,9);
cout<<intL.get(0)<<endl;
cout<<intL.get(2)<<endl;
cout<<intL.get(9)<<endl;
intL.remove(9);
intL.remove(2);
intL.remove(0);
intL.empty();
intL.traversal();
return 0;
}
</span>