kx-000009-顺序表-头插,尾插()-其他
kx-000009-顺序表-头插,尾插()
- 顺序表结构体定义。具体的结构体定义请查看头文件: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:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval – OK(1):插入成功
* @retval – ERROR(-1):表结构不存在,插入失败
* @retval – OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_front(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}for (int i = plist->size; i > 0; –i)
{
plist->pbase[i] = plist->pbase[i – 1];
}
plist->pbase[0] = x;
plist->size++;
return OK;
}
/**
* @brief 功能: 头插\n
* @param[in] plist:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval - OK(1):插入成功
* @retval - ERROR(-1):表结构不存在,插入失败
* @retval - OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_front(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}
for (int i = plist->size; i > 0; --i)
{
plist->pbase[i] = plist->pbase[i - 1];
}
plist->pbase[0] = x;
plist->size++;
return OK;
}
- 尾插法
/**
* @brief 功能: 尾插\n
* @param[in] plist:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval – OK(1):插入成功
* @retval – ERROR(-1):表结构不存在,插入失败
* @retval – OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_back(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}
plist->pbase[plist->size++] = x;
return OK;
}
/**
* @brief 功能: 尾插\n
* @param[in] plist:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval - OK(1):插入成功
* @retval - ERROR(-1):表结构不存在,插入失败
* @retval - OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_back(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}
plist->pbase[plist->size++] = x;
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:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval – OK(1):插入成功
* @retval – ERROR(-1):表结构不存在,插入失败
* @retval – OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_front(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}for (int i = plist->size; i > 0; –i)
{
plist->pbase[i] = plist->pbase[i – 1];
}
plist->pbase[0] = x;
plist->size++;
return OK;
}
/**
* @brief 功能: 头插\n
* @param[in] plist:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval - OK(1):插入成功
* @retval - ERROR(-1):表结构不存在,插入失败
* @retval - OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_front(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}
for (int i = plist->size; i > 0; --i)
{
plist->pbase[i] = plist->pbase[i - 1];
}
plist->pbase[0] = x;
plist->size++;
return OK;
}
- 尾插法
/**
* @brief 功能: 尾插\n
* @param[in] plist:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval – OK(1):插入成功
* @retval – ERROR(-1):表结构不存在,插入失败
* @retval – OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_back(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}
plist->pbase[plist->size++] = x;
return OK;
}
/**
* @brief 功能: 尾插\n
* @param[in] plist:表结构指针
* @param[in] x:待插元素
* @return 返回是否成功插入的结果状态标志
* @retval - OK(1):插入成功
* @retval - ERROR(-1):表结构不存在,插入失败
* @retval - OVERFLOW(-2):表满且扩容失败,插入失败
*/
status sList_push_back(mySList* plist, etype x)
{
if (plist == NULL || plist->pbase == NULL)
{
return ERROR;
}
int ret = plist->capacity == plist->size;
if (ret && OK != sList_expand(plist, 3))
{
return OVERFLOW;
}
plist->pbase[plist->size++] = x;
return OK;
}