给定一个带表头结点的单链表,设head为头指针, data 为整型元素, next为指针,试写出算法:按递增次序输出单链表中各结点的数据元素, 并释放结点所占的存储空间

代码:

void sortDel(LinkList* L){
    LinkList *p,*pre,*minp,*minpre;
    LinkList* temp;
    while(L->next!=NULL){
        p = L->next;
        pre = L;
        minpre = pre;
        minp = p;
        while(p!=NULL){
            if(p->data < minp->data){ //min<当前节点值,修改最小值节点
                minpre = pre;
                minp = p;
            }
            p = p->next;
            pre = pre->next;
        }
        temp = minp;
        //重新连接链表,防断链
        minpre->next = minp->next;
        //先输出,后释放节点
        cout<data<<" ";
        free(temp);
    }
    //释放头节点
    free(L);
}

结果:

给定一个带表头结点的单链表,设head为头指针, data 为整型元素, next为指针,试写出算法:按递增次序输出单链表中各结点的数据元素, 并释放结点所占的存储空间_第1张图片

你可能感兴趣的:(A研)