算法思想:遍历整个循环链表,依次比较,找出最小值结点并输出删除,循环操作直到单链表只剩余一个头结点,删除头结点
void DelseAll(LinkList &L){
LNode *p=L->next,*pre=L;//设置个变量指针
LNode *minp=p,*minpre=pre;
if(L->next!=L){//如果此时链表中还有剩余
p=L->next;//删除一个结点后重新开始遍历
pre=L;
while(p!=L){//一次遍历
if(p->data<min->data)//一次循环删除一个最小的结点
minp=p;
minpre=pre;
else
pre=p;
p=p->next;
}
printf(“%d”,minp);//输出最小的结点
minpre->next=minp->next;//删除最小结点
free(minp);
}
free(L);//释放头结点
}