删除顺序表L中下标为p(0≤ p ≤length-1)的元素,成功返回1,否则返回0,并将待删除的元素的值赋给e。

image

/******************************************************
 *
 *  name      : DelElement
 *	function  : (笔试题)删除顺序表L中下标为p(0<≤ p ≤length-1)的元素,
 *               成功返回1,否则返回0,并将待删除的元素的值赋给e。
 *  argument
 *               @p :需要插入顺序表中的元素
 *               @L :顺序表的地址
 *               @e :e的地址
 *
 *  retval    : 成功返回1,失败返回0
 *  author    : Dazz
 *  date      : 2024/4/22
 *  note      : None
 *
 * *******************************************************/
bool DelElement(unsigned int p, SeqList_t *L, int *e)
{
    // 错误处理
    if (p > length - 1)
    {
        printf("请输入范围内的下标\n");
        return false;
    }

    if (NULL == L)
    {
        printf("请输入有效地址\n");
        return false;
    }

    // 将待删除元素的值赋给e
    *e = L[p];

    // 把待删除元素的后继元素整体向前移动一个单位
    for (int i = p; i < Length; i++)
    {
        L[i] = L[i + 1];
    }
    return true;
}
posted @ 2024-04-22 20:15  Dazz_24  阅读(27)  评论(0)    收藏  举报