数据结构 顺序结构线性表(C语言)


typedef struct SeqList
{
	int *data;
	int length;
	int max_size;
}SeqList;

typedef struct LinkList {
	SeqList link_list;

};

//初始化线性表
//返回一个数据大小为size的空的线性表
SeqList Init_List(int max_size) {
	SeqList ll;
	ll.data = calloc(max_size,sizeof(int));
	ll.length = 0;
	ll.max_size = max_size;

	return ll;
}

//返回此线性表数据的长度
int Length_List(SeqList ll) {
	return ll.length;
}

//通过下标获取线性表中的元素
int Get_List(SeqList ll, int index) {
	if (ll.length <= index || index < 0) return NULL;
	return ll.data[index];
}

//按值查找下标
int Locate_List(SeqList ll,int num) {
	for (int i = 0; i < ll.length; i++)
	{
		if (ll.data[i] == num) return i;
	}
	return -1;
}

//在数组末尾增加一个数据
int Add_List(SeqList *ll, int num) {
	if ((*ll).length == (*ll).max_size) return 0;
	(*ll).data[(*ll).length] = num;
	(*ll).length++;
	return 1;
}

//在某个位置插入数据
int Insert_List(SeqList *ll, int num, int index) {
	if (index >= ll->length) return 0;
	for (int i = ll->length-1; i >= index; i--)
	{
		ll->data[i + 1] = ll->data[i];
	}
	ll->data[index] = num;
	ll->length++;
	return 1;
}

//删除指定下标的元素
int delete_List(SeqList *ll, int index) {
	if (ll->length <= index) return 0;
	for (int i = index;i < ll->length-1;i++) {
		ll->data[i] = ll->data[i + 1];
	}
	ll->length--;
	return 1;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值