//删除a,b之间的元素
void Del_a2b(LinkList &L,int a,int b){
LinkList pre=L,p=L->next,r;
while(p!=NULL){
if(p->data>a&&p->data<b){
r=p->next;
pre->next=r;
free(p);
p=r;
}else{
pre=p;
p=p->next;
}
}
}
//就地逆置
void Reverse(LinkList &L){
LinkList p=L->next,q;
L->next=NULL;
while(p){
q=p->next;
p->next=L->next;
L->next=p;
p=q;
}
}
//插入排序
void Sort(LinkList &L){
LinkList p=L->next,r,pre;
r=p->next;
p->next=NULL;
p=r;
while(p!=NULL){
r=p->next;
pre=L;
while(pre->next!=NULL&&pre->next->data<p->data)
pre=pre->next;
p->next=pre->next;
pre->next=p;
p=r;
}
}
//最小删除法
void Min_Delete(LinkList &L){
LinkList pre,p,r;
while(L->next!=NULL){
pre=L;
p=L->next;
while(p->next!=NULL){
if(p->next->data<pre->next->data)pre=p;
p=p->next;
}
r=pre->next;
pre->next=r->next;
free(r);
}
free(L);
}