#include "seqlist.h"
//1 创建一个顺序表
int create_SqList(SqListPtr L){
for (int i = 0; i < LISTMAXSIZE; i++)
L->data[i] = 0;
L->length = 0;
return 0;
}
//2 判断顺序表是否为空
int isEmpty_SqList(SqList L){
return L.length > 0 ? 0 : 1;
}
//3 清空顺序表
int clear_SqList(SqListPtr L){
L->length = 0;
return 0;
}
//4 查找顺序表中某一位置的值
int getElement_Sqlist(SqListPtr L, int position){
if (L->length < position)
return 1;
return L->data[position - 1];
}
//5 查找某值在线性表中的位置
int locate_Sqlist(SqListPtr L, int value){
for (int i = 0; i <= L->length; i++){
if (L->data[i] == value)
return (i+1);
}
return 0;
}
//6 插入元素到顺序表中的某个位置
int insert_SqList(SqListPtr L, int position, int value){
if (L->length == LISTMAXSIZE)
return 1;
if (L->length == 0){
L->data[L->length] = value;
L->length++;
return 0;
}
if (L->length >= position){
for (int i = L->length; i >= position; i--)
L->data[i] = L->data[i - 1];
L->data[position-1] = value;
L->length++;
return 0;
}
}
//7 删除顺序表中德元素
int delete_SqList(SqListPtr L, int value){
for (int i = 0; i < L->length; i++){
if (L->data[i] == value){
for (int j = i; j < L->length; j++){
L->data[j] = L->data[j + 1];
}
L->length--;
return 0;
}
}
return 1;
}
//8 求线性表的元素个数
int length_SqList(SqList L){
return L.length;
}
//9 遍历顺序表
int traversal_Sqlist(SqList L){
if (L.length == 0)
return 1;
for (int i = 0; i < L.length; i++)
printf("%d ", L.data[i]);
return 0;
}