第二章P23-4删除s与t之间的元素"/>
第二章P23-4删除s与t之间的元素
/*** 删除从s到t之间所有元素闭区间* */
Status deleteElemStoT(SqList *List,int s, int t)
{if(List->length==0){return ERROR;}else if(s <= 0 || t > List->length){return ERROR;}else if(s >= t){return ERROR;}else{//[1,2,3,4,5] length = 5//s =2 t=3int copys = s;for(int i=t; i<List->length;i++){List->data[copys-1] = List->data[i];copys++;}List->length -= (t-s + 1);return OK;}}/*** 从有序顺序表中删除其值在给定值s到t之间(s<t)的所有元素,如果s或t不合理或顺序表为空* 则显示出错信息并退出运行* */
Status deleteElemMoreSLessT(SqList *List, int s, int t)
{if(List->length==0 || s>=t)return ERROR;else{//【1,2,3,4】 s=2,t=3int i,j;for(i=0;i<List->length && List->data[i] < s;i++){//2为data[i]}for(j=List->length-1;List->data[j]> t ;j--){//3为data[j],j = 2}//把data[j+1]的元素移动到data[i]的后面for(int k=j+1;k<List->length;k++){List->data[i] = List->data[k];i++;}List->length = i;return OK;}}
更多推荐
第二章P23-4删除s与t之间的元素
发布评论