p->next=q;
if(i==len+1) //表尾插入后修改尾指针
tail=q;
++len;
return true;
}
template
bool LinkList
{
LinkNode
q=new LinkNode
q->data=e;
tail->next=q;
tail=q; //漏了一句,要自己写,弄清原理
tail->next=NULL;
++len;
return true;
}
template
bool LinkList
{
if(i<1 || i>len)
return false;
LinkNode
int k=1;
p=head;
while(k {
p=p->next;
k++;
}
q=p->next;
p->next=q->next;
if(q==tail)
tail=q;
e=q->data;
delete q;
--len;
return true;
}
template
void LinkList
{
LinkNode
while(p)
{
visit(p->data);
p=p->next;
}
}
template
LinkList
{
Clear();
delete head;
CopyFrom(r);
return *this;
}
void LinkList
{
len=0;
head=tail=new LinkNode
head->next=NULL;
LinkNode
while(p)
{
Append(p->data);
p=p->next;
}
}
template
void LinkList
{
LinkNode
for(r = head;r != NULL;r = r->next)
{
q = r;
for(t = r->next;t!=NULL;t = t->next)
{
if(r->data < t -> data)
break;
if(r->data == t -> data)
{
q ->next = t->next;
}
else{
q = q ->next;
}
}
}
}
template
void LinkList
{
int temp;
LinkNode
for(int i =0 ;i < len/2;i++)
{
for(int j = 0;j < len-i;j++)
{
q = q->next;
}
temp = q->data;
q->data = p -> data;
p->data = temp;
q = head;
p = p->next;
}
}