数据结构之insert插入代码

#include<stdio.h>
#include<malloc.h> 
#include<stdlib.h>	

struct Arr 
{
	int *pBase;	//存储数组第一个元素的地址 
	int len;	//数组所能容纳的最大元素的个数 
	int cnt;	//当前数组有效元素个数 
};

void init_arr(struct Arr *pArr,int length);	//初始化数组 
bool append_arr(struct Arr *pArr,int val);	//追加 
bool insert_arr(struct Arr *pArr,int pos,int val);//表示下标为0的为第一个 元素,pos值从1开始,pos=4,表示在第4个元素前面插入一个值 
bool is_empty(struct Arr *pArr);	
bool is_full(struct Arr *pArr);
void show_arr(struct Arr *pArr);	//展示 

int main(){
	struct Arr arr;
	init_arr(&arr,6);
	append_arr(&arr,1);
	append_arr(&arr,2);
	append_arr(&arr,3);
	append_arr(&arr,4);
	append_arr(&arr,5);
	insert_arr(&arr,1,99) ;		
	show_arr(&arr);
	return 0;
}
bool insert_arr(struct Arr *pArr,int pos,int val){
	int i;
	if(is_full(pArr))
		return false;
	if(pos<1||pos>pArr->cnt+1)
		return false;
	for(i=pArr->cnt-1;i>=pos-1;--i){//【1】
		pArr->pBase[i+1]=pArr->pBase[i];
	}
	pArr->pBase[pos-1]=val;
	(pArr->cnt)++;//先执行前面,后执行后面的 
	return true;
} 

image.png

insert_arr(&arr,6,99) ;

image.png

insert_arr(&arr,7,99) ;

因为数组长度为6,所以在第7个位置插入,无效。
image.png

【1】for循环的条件,不需要记,只需要自己动手模拟一下就行了

本文只显示部分关键代码,详细代码,请参考上一篇文章。
参考链接:https://www.bilibili.com/video/BV11s41167h6?p=13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值