// 将线性表清空
Status ClearList(SeqList* list){//for (int i = 0;i < list->length;i++)//{// list->elem[i] = 0;//}
list->length =0;return OK;}
4. 获取线性表中指定位置的元素
// 将线性表 list 中第 i 个元素返回给 e
Status getElem(SeqList list,int i,int* e){// if (i < 1 || i > length)if(list.length ==0|| i <1|| i > list.length)return ERROR;*e = list.elem[i-1];return OK;}
// 在线性表 list 的第 i 个位置插入新元素 e
Status ListInsert(SeqList* list,int i,int e){if(i >list->length+1|| i <1|| list->length == MAXSIZE)return ERROR;for(int pos = list->length; pos >= i; pos--){
list->elem[pos]= list->elem[pos-1];}
list->elem[i-1]= e;// ***
list->length +=1;return OK;}
7. 删除线性表指定位置的元素
// 删除线性表 list 中第 i 个位置元素,并用 e 返回其值
Status ListDelete(SeqList* list,int i,int* e){if(i <1|| i > list->length || list->length ==0)return ERROR;*e = list->elem[i-1];for(int pos = i-1;pos < list->length-1;pos++){
list->elem[pos]= list->elem[pos+1];}
list->length -=1;return OK;}
8. 求两个线性表的并集
// 删除线性表 list 中第 i 个位置元素,并用 e 返回其值
Status ListDelete(SeqList* list,int i,int* e){if(i <1|| i > list->length || list->length ==0)return ERROR;*e = list->elem[i-1];for(int pos = i-1;pos < list->length-1;pos++){
list->elem[pos]= list->elem[pos+1];}
list->length -=1;return OK;}
9. 案例测试
intmain(void){
SeqList list;
Status status;
status =Init(&list);printf("初始化 list 后:list.length = %d\n",list.length);// 插入 5 个元素for(int i =1;i <=5;i++)
status =ListInsert(&list,i,i);Display(list);// 删掉 第 4 个元素int tempValue;
status =ListDelete(&list,3,&tempValue);Display(list);// 获取第 2 个元素
status =getElem(list,2,&tempValue);printf("%d\n",tempValue);// 查找元素 4 在 list 中的位置
tempValue =LocateElem(list,11);printf("*********************************\n");
SeqList list2;
status =Init(&list2);// 插入 8 个元素for(int i =1;i <=8;i++)
status =ListInsert(&list2,i,i+5);UnionList(&list,list2);Display(list);return0;}