首页 > 其他分享 >kx-顺序表:顺序表扩容

kx-顺序表:顺序表扩容

时间:2023-02-15 17:11:06浏览次数:43  
标签:扩容 顺序 int seqType kx plist inc

一、定义顺序表结构

#define INIT_SIZE 10	///< 顺序表初始容量
typedef int seqType;	///< 定义顺序表元素类型
/// @brief 顺序表结构定义
typedef struct t_sqList
{
	seqType* pbase;	///< 表基址
	int capacity;	///< 表容量
	int size;	///< 表长度
}mySList;

二、扩容函数

1、思路

2、代码

/// @brief 顺序表扩容
/// @param plist:表结构指针
/// @param inc:扩容inc个存储单元
/// @return 返回扩容结果
/// @retval OK(1):扩容成功
/// @retval ERROR(0):顺序表不存在,不可操作
/// @retval ERR_OVERFLOW(-2):扩容失败:申请堆空间失败导致/
status sList_expand(mySList* plist, int inc)
{
	if (NULL == plist || NULL == plist->pbase)
	{
		return ERROR;
	}
	/// 设定基本扩容最小倍数为原容量的1.5倍,扩容后预估新容量为 newCap
	int newCap = plist->capacity * 1.5;
	/// 传入实参扩容量inc后,预估新容量为 inCap
	int inCap = plist->capacity + inc;
	/// 实际扩容后,顺序表新容量
	int realCap = (inCap < newCap) ? newCap : inCap;
	
	seqType* pNew = NULL;
	pNew = (seqType*)realloc(plist->pbase, sizeof(seqType) * realCap);
	if (NULL == pNew)
	{
		return ERR_OVERFLOW;
	}
	plist->pbase = pNew;
	plist->capacity = realCap;
	return OK;
}

标签:扩容,顺序,int,seqType,kx,plist,inc
From: https://www.cnblogs.com/kxwslmsps/p/17123840.html

相关文章

  • kx-顺序表:顺序表结构定义
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • kx-顺序表:顺序表头文件定义
    一、公共头文件#ifndef__MYHEAD_H__#define__MYHEAD_H__/*******************************************************************@file:myhead.h*@brief:公......
  • 数据结构与算法-第01章:顺序表-实现
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • Java main方法所在类初始化顺序
    目录1、main方法特性2、与所在类的关系1、main方法特性访问权限是publicmain()是static静态,因此如果在main方法中调用本类的其他方法也必须是静态方法,否则需要先实例化......
  • java 按照自定义顺序枚举实体类的属性值
    工具类/***按照字段顺序进行拼接**@paramobj对象,需要在字段上添加FieldOrder注解*@paramfix拼接符号*@param<T>*@ret......
  • 字符串常用类及常量池和扩容机制理解
    字符串相关类:String、StringBuffer、StringBuilder  字符串相关的类:* 1.String字符串类,底层是基于常量char[],一旦创建长度就固定不变了,适用于字符串不经常增删改的......
  • 顺序表:合并2个非递减顺序表
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • 顺序表:删除顺序表中值等于x的所有元素
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • 顺序表:删除表尾元素
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • 顺序表:删除顺序表第一个元素
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......