首页 > 其他分享 >kx00009-顺序表--顺序表头插法

kx00009-顺序表--顺序表头插法

时间:2023-02-10 02:44:35浏览次数:41  
标签:pbase 顺序 定义 -- 表头 int plist size

一、顺序表结构定义

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

// 定义顺序表结构体
typedef struct t_sqList
{
	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 flagFull = plist->capacity == plist->size;
	// 表满,且扩容失败
	if (flagFull && OK != sList_expand(plist, 1))
	{
		return OVERFLOW;
	}

	// 将[1,size-1]范围内元素依次向后移动1个位置
	for (int i = plist->size; i > 0; --i)
	{
		plist->pbase[i] = plist->pbase[i - 1];
	}
	plist->pbase[0] = x;
	plist->size++;
	return OK;
}

 

标签:pbase,顺序,定义,--,表头,int,plist,size
From: https://www.cnblogs.com/kxwslmsps/p/17107637.html

相关文章

  • kx00010-顺序表--按位置删除表元素remove
    一、顺序表结构定义#defineINIT_SIZE10 //顺序表初始容量typedefvoid(myOpFunType)(void*); //定义操作函数类型typedefintseqType; //定义顺序表元素类型......
  • kx00008-顺序表--顺序表尾插法
    一、顺序表结构定义#defineINIT_SIZE10 //顺序表初始容量typedefvoid(myOpFunType)(void*); //定义操作函数类型typedefintseqType; //定义顺序表元素类型......
  • Unity Shader 真实感水体渲染
    这两周用UnityShader做了点简单的水体渲染,有真实感的也有非真实感的,打算这几天总结整理一下贴出来。毛星云大牛有一篇详细的真实感水体渲染介绍:https://zhuanlan.zhihu.c......
  • Codeforces Round #851 (Div. 2) 题解
    CodeforcesRound#851(Div.2)题解A.OneandTwo取\(\log_2\),变成加号,前缀和枚举\(s[i]=\dfrac{s[n]}{2}\)。B.SumofTwoNumbers对于每一位,如果是偶数则平均......
  • [Typescript] Using type predicates
     import{expect,it}from"vitest";import{Equal,Expect}from"../helpers/type-utils";exportconstvalues=["a","b",undefined,"c",undefined];c......
  • 决战圣地玛丽乔亚Day08
    RocketMQ分布式事务   相对于本地事务,分布式事务是为了满足跨数据源或跨服务的事务场景。上图展示了RocketMQ在分布式事务中的应用,满足CAP定理中的AP,保证最终一致......
  • 二叉树
    #include<stdio.h>#include<stdlib.h>typedefstructTree{intdata; // 存放数据域structTree*lchild; // 遍历左子树指针structTree*rchild; // 遍历右......
  • cracking the System Design tech interview All In One
    crackingtheSystemDesigntechinterviewAllInOne破解系统设计技术面试SystemDesignhttps://github.com/donnemartin/system-design-primerhttps://github.c......
  • kx00007-顺序表--插入函数
    一、顺序表结构定义#defineINIT_SIZE10 //顺序表初始容量typedefvoid(myOpFunType)(void*); //定义操作函数类型typedefintseqType; //定义顺序表元素类型......
  • ACP云原生容器工程师-ACK概述
    ACK简介阿里云容器服务ACK,是阿里云针对云原生推出的拳头产品,基于原版Kubernetes进行适配和增强,简化集群的搭建和运维工作,整合阿里云虚拟化、存储、网络和安全能力,使得扩容......