每次循环找到一个最小结点,然后删除它,反复循环直到单链表为空
void del(LinkList &L){
LNode *p,*pre,*minp,*minpre;
while(L->next!=L){//表不空,循环
p=L->next;
pre=L;
minp=p;minpre=pre;
while(p!=L){
if(p->data<minp->data){
minp=p;
minpre=pre;
}
pre=p;
p=p->next;
}
printf("%d ",minp->data);
minpre->next=minp->next;
free(minp);
}
free(L);
}