【数据结构C实现】1.顺序表实现

#include <stdio.h>
#include<malloc.h>
#define INIT_SIZE 100
#define LIST_INCRE 10
struct SqList{
	int* pElem;
	int length;
	int listsize;	
};
typedef struct SqList SqList;
SqList L;
int init_SqList(SqList &L){
	L.pElem=(int*)malloc(INIT_SIZE*sizeof(int));
	L.length=0;
	L.listsize=INIT_SIZE;
	return 0;
}
int destroy_SqList(SqList &L){
	free(L.pElem);
	L.length=0;
	L.listsize=0;
}
int clear_SqList(SqList &L){
	L.length=0;
	free(L.pElem);
}
int insert_SqList(SqList &L,int i,int data){
	if(i<0 || i>L.length) exit(-1);
	if(L.length>=L.listsize){
		L.pElem=(int*)realloc(L.pElem,L.listsize+LIST_INCRE);
	}
	int* p=L.pElem+L.length-1;
	int* q=L.pElem+i;
	for(;p>=q;p--){
		*(p+1)=*(p);
	}
	*q=data;
	L.length++;
	return 0;
		
}
int delete_SqList(SqList &L,int i){
	if(i<0 || i>L.length-1) exit(-1);
	int* p=L.pElem+i;
	int* q=L.pElem+L.length-1;
	while(p<q){
		*p=*(p+1);
		p++;
	}
	L.length--;
}
int show_SqList(SqList &L){
	if(L.length==0) {
		printf("链表为空\n");
		return 0;
	}
	int* p=L.pElem;
	int* q=L.pElem+L.length-1;
	while(p<=q){
		printf("%d ",*p);
		p++;
	}
	printf("\n");
	return 0;
	
	
}
int isEmpty_SqList(SqList &L){
	if(L.length==0) return 1;
	else return 0;
}
int main(int argc, char *argv[])
{
	init_SqList(L);
	insert_SqList(L,0,34);
	insert_SqList(L,0,43);
	insert_SqList(L,0,1);
	
	show_SqList(L);
	
	delete_SqList(L,1);
	show_SqList(L);
	
	clear_SqList(L);
	show_SqList(L);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值