首页 > 其他分享 >LList_DelMin

LList_DelMin

时间:2024-04-23 21:55:45浏览次数:21  
标签:结点 prev min next LList phead DelMin

  1. 删除单链表L(有头结点)中的一个最小值结点。
/***********************************************************
 *
 *    file name:	
 *    author   :     [email protected]
 *    date     :     2024/04/23
 *    function :	
 *    note     :     None
 *
 *    CopyRight (c)  2023-2024  [email protected]  All Right Reseverd
 *
 * ***********************************************************/


/***********************************************************
 *
 *    函数名称:     LList_DelMin
 *    函数功能:     删除单链表L(有头结点)中的一个最小值结点。
 *    函数参数:
 *
 *
 *    返回结果:
 *    注意事项:     None
 *    函数作者:     [email protected]
 *    创建日期:     2024/04/23
 *    修改历史:
 *    函数版本:     V1.0
 * ***********************************************************/

void LList_DelMin(LList_t *Head) // L是单链表,含头节点  头节点->首节点
{
	LList_t *min_prev;         // 记录最小值结点的直接前驱地址
    LList_t *min = Head->next; // 记录最小值结点的地址
    LList_t *phead = Head->next; // 记录当前结点的地址
    LList_t *phead_prev = Head;  // p是要进行遍历的指针,pre是p前驱指针

    // 遍历链表,目的是找到最小值结点
    while (phead->next)
    {
        // 比较链表中结点的数据域大小
        if (min->data > phead->next->data)
        {
            min = phead->next;
            min_prev = phead;
        }
        // 如果发现当前结点的数据与不大于当前结点的直接后继,则向后遍历
        phead_prev = phead;
        phead = phead->next;
    }
    min_prev->next = min->next;

    // 释放min所指结点也就是删除操作
    min->next = NULL;
    free(min);
}

标签:结点,prev,min,next,LList,phead,DelMin
From: https://www.cnblogs.com/xiaoyaoj/p/18153846

相关文章