首页 > 其他分享 >顺序表-00009-头插法与尾插法

顺序表-00009-头插法与尾插法

时间:2022-12-04 02:33:12浏览次数:33  
标签:插法 pbase 顺序 return int OK 00009 plist size

  • 顺序表结构定义
  • typedef int seqType;	// 定义顺序表数据类型
    
    // 定义顺序表的结构体
    typedef struct t_sList
    {
    	seqType* pbase;		// 表基址
    	int capacity;		// 表容量
    	int size;			// 表长度
    }mySList;
    

      

  • 顺序表头插入法
  • /**
    * @brief 功能: 头插 \n
    * @param[in] plist:表结构指针
    * @param[in] x:待插元素
    * @retval OK(1):插入成功
    * @retval ERROR(0):表结构不存在,插入失败
    * @retval OVERFLOW(-2):表满且扩容失败,插入失败
    */
    status sList_push_front(mySList* plist, seqType 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:待插元素
    * @retval OK(1):插入成功
    * @retval ERROR(0):表结构不存在,插入失败
    * @retval OVERFLOW(-2):表满且扩容失败,插入失败
    */
    status sList_push_back(mySList* plist, seqType 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;
    }
    

      

标签:插法,pbase,顺序,return,int,OK,00009,plist,size
From: https://www.cnblogs.com/kxwslmsps/p/16949309.html

相关文章