首页 > 其他分享 >kx00006-顺序表--将数组元素依次追加到顺序表表尾

kx00006-顺序表--将数组元素依次追加到顺序表表尾

时间:2023-02-10 01:44:56浏览次数:50  
标签:arr 顺序 -- int 表表 追加 数组 plist

一、顺序表结构定义

#define INIT_SIZE 10			// 顺序表初始容量
typedef void(myOpFunType)(void*);	// 定义操作函数类型
typedef int seqType;			// 定义顺序表元素类型

// 定义顺序表结构体
typedef struct t_sqList
{
	seqType* pbase;		// 表基址
	int capacity;		// 表容量
	int size;		// 表长度
}mySList;

 

二、把数组arr的n个元素依次追加到顺序表表尾

/**
************************************************************************
* @brief 功能:将数组arr元素依次追加到顺序表表尾 \n
* @param[in] plist:表结构指针
* @param[in] arr:数组
* @param[in] n:数组元素个数
* @retval OK(1):追加成功
* @retval ERROR(0):顺序表不存在,追加失败
* @retval ERR_PARA(-1):追加失败:没有待追加的数组元素
* @retval OVERFLOW(-2):追加失败:容量不足且扩容失败
************************************************************************
*/
status sList_append(mySList* plist, seqType* arr, int n)
{
	if (plist == NULL || plist->pbase == NULL)
	{
		return ERROR;
	}
	// 若数组arr为空或不存在
	if (n < 1 || arr == NULL)
	{
		return ERR_PARA;	// 传入参数错误
	}
	// 顺序表可能需要扩容的增量inc
	int inc = plist->size + n - plist->capacity;	
	if (inc > 0 && (OK != sList_expand(plist, inc)))
	{
		return OVERFLOW;	// 扩容失败
	}
	// 将数组arr元素依次追加至顺序表表尾
	for (int i = 0; i < n; ++i)
	{
		plist->pbase[i + plist->size] = arr[i];
	}
	plist->size += n;
	return OK;
}

 

标签:arr,顺序,--,int,表表,追加,数组,plist
From: https://www.cnblogs.com/kxwslmsps/p/17107620.html

相关文章

  • 技术服务深耕本地市场:阿里云在日本的探索与实践|国家经理专栏
    作者简介:**宋子暨阿里云智能日本及韩国大区总经理宋子暨先生拥有15余年的IT和云计算的全球化工作经验。他于2014年加入阿里云,作为阿里云国际化初始成员负责全球的合作......
  • CMakelearn
     MESSAGE关键字:向终端输出用户自定义的信息主要包含三种信息:SEND_ERROR产生错误,生成过程被跳过STATUS输出前缀为--的信息FATAL_ERROR立即终止所有的cmake过程......
  • 使用 Python 开发桌面应用程序的最佳方法是什么?
    Python是一种通用编程语言,可用于各种任务,包括Web开发、数据分析和机器学习。它的最大优点之一是它还可用于创建桌面应用程序。在本文中,我们将深入探讨使用Python开发......
  • 10 亿月活用户下,快手基于 Dragonfly 的超大规模镜像分发实践
    背景挑战快手容器云平台旨在为快手不断增长、不断变化和多样化的业务,提供基于容器化部署的超大规模基础设施服务。为了实现这一目标,快手工程师需要解决弹性、稳定性、效......
  • 2022阿里云技术年报:基础产品篇
    屡获殊荣,创新不止。2022年,阿里云基础产品通过了一系列权威评估和奖项认证,进行了CIPU重大架构升级,发布了一系列创新产品,并始终走在开源贡献的前列,为创造客户价值而奋勇......
  • Linux 命令
    #查看进程状态psaux#查看系统内核信息uname-a#查看系统版本信息cat/etc/redhat-release#查看系统登录记录last#执行历史命令!history编码#返回上一次......
  • kx00005-顺序表--扩容
    一、顺序表结构定义#defineINIT_SIZE10 //顺序表初始容量typedefvoid(myOpFunType)(void*); //定义操作函数类型typedefintseqType; //定义顺序表元素类型......
  • 彻底掌握 MySQL InnoDB 的锁机制
    本文是对沈剑大佬锁机制十多篇文章的概括总结,文末有全部链接,还参考了10多位其他网友的优秀分享。1、概要MySQL中的锁可以按照粒度分为锁定整个表的表级锁(table-le......
  • 重磅发布丨《云原生实战指南》助力企业上云实践!
    云原生已经变成非常流行的技术趋势,从上云到用云,云原生通过全面容器化、核心技术互联网化和应用Serverless化三大范式,帮助企业解决应用构建的一系列问题,让应用更敏捷,助力企......
  • Gateway 网关 之 自定义断言
    自定义 PredicateFactory可以定义针对于 Router的 Predicate。注意:1、类名必须叫做XxxRoutePredicateFactory.注入到Spring容器后使用时的名称就叫做Xxx。2、类必......