线性表操作

/***
name: create a seqlist
receive: seqlist address
return: int
***/
int creat(Seqlist* L){
	int len;
	L->length = 0;
	printf("Enter the length of the seqlist:");
	scanf("%d", &len);
	if (len <= 100){
		for (int i = 0; i < len; i++){
			printf("Enter the %d element of the seqlist:", (i + 1));
			scanf("%d", &(L->data[i]));
			L->length++;
		}
		return 0;
	}
	else{
		printf("the length overflow!");
		return -1;
	}
}

/***
name: print the seqlist
receive: seqlist
return: int
***/
int show(Seqlist L){
	if (L.length > 0){
		for (int i = 0; i < (L.length); i++)
			printf("%d ", L.data[i]);
		printf("\n");
		return 0;
	}
	else{
		printf("The seqlist is empty!");
		return -1;
	}
}

/***
name: get a element of the seqlist
reveive: seqlist, position
returen: int
***/
int getelement(Seqlist L, int locate){
	if (locate <= L.length)
		return L.data[locate - 1];
	return -1;
}

/***
name: insert a data to the seqlist
receive: seqlist address, insert position, insert data
return: int
***/
int insert(Seqlist *L, int locate, int element){
	if ((L->length) < 100){
		for (int i = (L->length); i>locate; i--)
			L->data[i] = L->data[i - 1];
		L->data[locate] = element;
		L->length++;
		return 0;
	}
	else{
		printf("seqlist is full!");
		return -1;
	}
}

/***
name: delete a element from the seqlist
receive: seqlist address, element
return int
***/
int delete_by_element(Seqlist* L, int element){
	for (int i = 0; i < L->length; i++){
		if (L->data[i] == element){
			for (int j = i; j < L->length; j++){
				L->data[j] = L->data[j + 1];
			}
		}
	}
	L->length--;
	return 0;
}

/***
name: delete a element from the seqlist
receive: seqlist address, position
return: int
***/
int delete_by_position(Seqlist* L, int locate){
	if (locate < L->length){
		for (int i = (locate-1); i < L->length; i++){
			L->data[i] = L->data[i + 1];
		}
	}
	L->length--;
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值