kx-000012-头删与尾删,pop_front,pop_back()

  • 顺序表结构体定义。具体的结构体定义请查看头文件:https://www.cnblogs.com/kxwslmsps/p/16937235.html

    typedef status int; //< 定义函数结果状态 typedef int etype; //< 元素数据类型 #define CAPACITY 10 //< 定义初始容量 typedef struct tag_seqList { etype* pbase; //< 表基址 int capacity; //< 表容量 int size; //< 表长度 }mySList;    

typedef status int;     //< 定义函数结果状态 
typedef int etype;      //< 元素数据类型
#define CAPACITY 10     //< 定义初始容量 

typedef struct tag_seqList
{
    etype* pbase;    //< 表基址 
    int capacity;    //< 表容量 
    int size;        //< 表长度 
}mySList;
  • 头删法

    /**
    * @brief 功能:头删 \n
    * @param[in] plist:表结构指针
    * @return 返回是否删除成功的状态标志
    * @retval – OK(1):删除成功
    * @retval – ERROR(-1):顺序表不存在,删除失败
    * @retval – FALSE(0):表为空,删除失败
    */
    status sList_pop_front(mySList* plist)
    {
    if (plist == NULL || plist->pbase == NULL)
    {
    return ERROR;
    }
    if (plist->size == 0)
    {
    return FALSE;
    }// 表空,不可删除
    for (int i = 1; i < plist->size; ++i)
    {
    plist->pbase[i – 1] = plist->pbase[i];
    }
    plist->size–;
    return OK;
    }

     

/**
* @brief 功能:头删 \n
* @param[in] plist:表结构指针
* @return 返回是否删除成功的状态标志
* @retval - OK(1):删除成功
* @retval - ERROR(-1):顺序表不存在,删除失败
* @retval - FALSE(0):表为空,删除失败
*/
status sList_pop_front(mySList* plist)
{
    if (plist == NULL || plist->pbase == NULL)
    {
        return ERROR;
    }
    if (plist->size == 0)
    {
        return FALSE;
    }// 表空,不可删除
    for (int i = 1; i < plist->size; ++i)
    {
        plist->pbase[i - 1] = plist->pbase[i];
    }
    plist->size--;
    return OK;
}
  • 尾删法

    /**
    * @brief 功能:尾删 \n
    * @param[in] plist:表结构指针
    * @return 返回是否删除成功的状态标志
    * @retval – OK(1):删除成功
    * @retval – ERROR(-1):顺序表不存在,删除失败
    * @retval – FALSE(0):表为空,删除失败
    */
    status sList_pop_back(mySList* plist)
    {
    if (plist == NULL || plist->pbase == NULL)
    {
    return ERROR;
    }
    if (plist->size == 0)
    {
    return FALSE;
    }// 表空,不可删除
    plist->size–;
    return OK;
    }

     

/**
* @brief 功能:尾删 \n
* @param[in] plist:表结构指针
* @return 返回是否删除成功的状态标志
* @retval - OK(1):删除成功
* @retval - ERROR(-1):顺序表不存在,删除失败
* @retval - FALSE(0):表为空,删除失败
*/
status sList_pop_back(mySList* plist)
{
    if (plist == NULL || plist->pbase == NULL)
    {
        return ERROR;
    }
    if (plist->size == 0)
    {
        return FALSE;
    }// 表空,不可删除
    plist->size--;
    return OK;
}
————————
  • 顺序表结构体定义。具体的结构体定义请查看头文件:https://www.cnblogs.com/kxwslmsps/p/16937235.html

    typedef status int; //< 定义函数结果状态 typedef int etype; //< 元素数据类型 #define CAPACITY 10 //< 定义初始容量 typedef struct tag_seqList { etype* pbase; //< 表基址 int capacity; //< 表容量 int size; //< 表长度 }mySList;    

typedef status int;     //< 定义函数结果状态 
typedef int etype;      //< 元素数据类型
#define CAPACITY 10     //< 定义初始容量 

typedef struct tag_seqList
{
    etype* pbase;    //< 表基址 
    int capacity;    //< 表容量 
    int size;        //< 表长度 
}mySList;
  • 头删法

    /**
    * @brief 功能:头删 \n
    * @param[in] plist:表结构指针
    * @return 返回是否删除成功的状态标志
    * @retval – OK(1):删除成功
    * @retval – ERROR(-1):顺序表不存在,删除失败
    * @retval – FALSE(0):表为空,删除失败
    */
    status sList_pop_front(mySList* plist)
    {
    if (plist == NULL || plist->pbase == NULL)
    {
    return ERROR;
    }
    if (plist->size == 0)
    {
    return FALSE;
    }// 表空,不可删除
    for (int i = 1; i < plist->size; ++i)
    {
    plist->pbase[i – 1] = plist->pbase[i];
    }
    plist->size–;
    return OK;
    }

     

/**
* @brief 功能:头删 \n
* @param[in] plist:表结构指针
* @return 返回是否删除成功的状态标志
* @retval - OK(1):删除成功
* @retval - ERROR(-1):顺序表不存在,删除失败
* @retval - FALSE(0):表为空,删除失败
*/
status sList_pop_front(mySList* plist)
{
    if (plist == NULL || plist->pbase == NULL)
    {
        return ERROR;
    }
    if (plist->size == 0)
    {
        return FALSE;
    }// 表空,不可删除
    for (int i = 1; i < plist->size; ++i)
    {
        plist->pbase[i - 1] = plist->pbase[i];
    }
    plist->size--;
    return OK;
}
  • 尾删法

    /**
    * @brief 功能:尾删 \n
    * @param[in] plist:表结构指针
    * @return 返回是否删除成功的状态标志
    * @retval – OK(1):删除成功
    * @retval – ERROR(-1):顺序表不存在,删除失败
    * @retval – FALSE(0):表为空,删除失败
    */
    status sList_pop_back(mySList* plist)
    {
    if (plist == NULL || plist->pbase == NULL)
    {
    return ERROR;
    }
    if (plist->size == 0)
    {
    return FALSE;
    }// 表空,不可删除
    plist->size–;
    return OK;
    }

     

/**
* @brief 功能:尾删 \n
* @param[in] plist:表结构指针
* @return 返回是否删除成功的状态标志
* @retval - OK(1):删除成功
* @retval - ERROR(-1):顺序表不存在,删除失败
* @retval - FALSE(0):表为空,删除失败
*/
status sList_pop_back(mySList* plist)
{
    if (plist == NULL || plist->pbase == NULL)
    {
        return ERROR;
    }
    if (plist->size == 0)
    {
        return FALSE;
    }// 表空,不可删除
    plist->size--;
    return OK;
}