/** 函数名:list_add* 功能:向表的尾部添加一个元素* 参数1:SeqList_ptr S 顺序表指针* 参数2:datatype e 待添加数据* 返回值:*/intlist_add(SeqList_ptr S, datatype e){//判断合法性if(list_full(S)){printf("顺序表已满\n");return-1;}//添加元素S->data[S->len]= e;//表长变化S->len++;printf("添加成功\n");return0;}
遍历顺序表
/** 函数名:list_show* 功能:遍历顺序表* 参数:SeqList_ptr S 顺序表指针* 返回值:无*/voidlist_show(SeqList_ptr S){//判空if(list_empty(S)){printf("顺序表为空\n");return;}//遍历顺序表for(int i =0; i < S->len; i++){printf("%d\t",S->data[i]);}printf("\n");}
顺序表任意位置插入
/** 函数名:list_insert* 功能:在指定位置插入一个数据* 参数1:SeqList_ptr S 顺序表指针* 参数2:int pos 要插入的位置* 参数3:datatype e 要插入的数据* 返回值: 1 插入失败* 0 插入成功*/intlist_insert(SeqList_ptr S,int pos, datatype e){//判断插入位置是否合法if(pos > S->len || pos <0||list_full(S)){printf("插入失败\n");return-1;}//为插入数据腾出位置for(int i = S->len-1; i >= pos; i--){S->data[i+1]= S->data[i];}//将数据插入S->data[pos]= e;//顺序表长度增加S->len++;return0;}
顺序表任意位置删除
/** 函数名:list_del_pos* 功能:删除指定位置的数据* 参数1:SeqList_ptr S 顺序表指针 * 参数2:int pos 要删除数据的位置* 返回值: 0 删除成功* -1 删除失败*/intlist_del_pos(SeqList_ptr S,int pos){//判断是否可以删除if(pos >= S->len || pos <0||list_empty(S)){printf("删除失败\n");return-1;}//删除数据for(int i = pos+1; i < S->len; i++){S->data[i-1]= S->data[i];}//顺序表长度减少S->len--;return0;}
顺序表按值查找返回元素下标
/** 函数名:list_sarch_val* 功能:通过给定的值,查询是否存在相应的数据,并返回他的下标* 参数1:SeqList_ptr S 顺序表指针* 参数2:datatype e 查询的值* 返回值: -1 查询失败,或者没有对应的数据* else 是该值下标*/intlist_sarch_val(SeqList_ptr S, datatype e){//判断顺序表是否为空if(list_empty(S)){printf("查找失败\n");return-1;}//逻辑处理for(int i =0; i < S->len; i++){if(e == S->data[i]){return i;}}//没有相应数据return-1;}