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;
}
数据结构 顺序结构线性表(C语言)
最新推荐文章于 2024-08-23 08:14:22 发布