2/0数据结构之动态数组

动态数组的初始化操作

Status Listlnesert_Sq(Sqlist &L,int i,char e){
	if(i<1||i>ListSize) return ERROR;
	//判断参数是否合法大于等于1,而且在最大容量之内
	if(L.lenth>=L.Listsize){//内存已满追加内存
	newbase=(char *)ralloc(L.elem,L.lenth+LISTINCREMENT)*sizeof(char));
	if(!newbase)  exit(OVERFLOW);//分配内存失败
	L.elem=newbase;
	L.listsize+=LISTINCREMENT;
	}
	q=&(L.elem[i-1]);//必须通过地址访问
	for(p=&(l.elem[l.lenth-1]);p>=q;--p)
	   *(p+1)=*p;
	*q=e;
	++l.lenth;
	return OK;
}

动态数组的插入操作

Status Listlnesert_Sq(Sqlist &L,int i,char e){
	if(i<1||i>ListSize) return ERROR;
	//判断参数是否合法大于等于1,而且在最大容量之内
	if(L.lenth>=L.Listsize){//内存已满追加内存(注意等号)
	newbase=(char *)ralloc(L.elem,L.lenth+LISTINCREMENT)*sizeof(char));
	if(!newbase)  exit(OVERFLOW);//分配内存失败
	L.elem=newbase;
	L.listsize+=LISTINCREMENT;
	}
	q=&(L.elem[i-1]);//必须通过地址访问
	for(p=&(l.elem[l.lenth-1]);p>=q;--p)
	   *(p+1)=*p;
	*q=e;
	++l.lenth;
	return OK;
}

动态数组的删除操作

Status ListDelete_Sq(Sqlist &L,int i,char &e){
  if(i<1||i>l.lenth) return ERROR;
  q=&(L.elem[i-1]);
  e=*q;
  for(p = q;p < &(L.elem[L.lenth-1]);p --)
  *p=*(p+1);
  L.lenth--;
  returm OK;
}

算法复杂度的计算方法
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值