voidDelIndex(SqList &L,int index){if(!L.length || index <0|| index >= L.length)return;for(int i = index +1; i < L.length; i++)
L.data[i -1]= L.data[i];
L.length--;}voidDel_s2t_close_domain(SqList &L,int s,int t){if(!L.length || s >= t){
cout <<"Error!"<< endl;exit(0);}for(int i =0; i < L.length; i++)if(L.data[i]>= s && L.data[i]<= t)DelIndex(L, i--);}
better
boolDel_s2t_close_domain(SqList &L,int s,int t){int k =0;if(!L.length || s >= t)returnfalse;for(int i =0; i < L.length; i++){if(L.data[i]>= s && L.data[i]<= t){
k++;else
L.data[i - k]= L.data[i];}
L.length -= k;returntrue;}
6. MakeSortedArrayElemUnique
voidDelIndex(SqList &L,int index){if(!L.length || index >= L.length || index <0)return;for(int i = index +1; i < L.length; i++)
L.data[i -1]= L.data[i];
L.length--;}voidMakeSortedArrayElemUnique(SqList &L){if(L.length <=1)return;for(int i =0; i < L.length; i++){for(int j = i +1; j < L.length; j++){if(L.data[j]== L.data[i])DelIndex(L, j--);}}}
voidReverseOneArray(int A[],int left,int right){if(left >= right)return;for(int i = left; i <=(left + right)/2; i++)swap(A[i], A[right -(i - left)]);}voidExchangeTwoSqListStoredInOneArray(int A[],int m,int n){//m + n = A.lengthReverseOneArray(A,0, m -1);ReverseOneArray(A, m, m + n -1);ReverseOneArray(A,0, m + n -1);}
9.FindXOrInsert(SqList &L, int x)
boolFindXOrInsert(SqList &L,int x){if(!L.length){
L.data[++L.length]= x;returntrue;}int l =0, r = L.length -1;int mid;while(l <= r){
mid =(l + r)/2;if(L.data[mid]< x)
l = mid +1;elseif(L.data[mid]> x)
r = mid -1;else{if(mid != L.length -1)swap(L.data[mid], L.data[mid +1]);returntrue;}}for(int i = L.length -1; i >= l; i--)//If not find, l and mid will be the starting place to shift elements
L.data[i +1]= L.data[i];
L.data[l]= x;
L.length++;returnfalse;}
10. RecursiveLeftShiftP(SqList &L, int p)
voidReverse(SqList &L,int left,int right){if(left >= right)return;for(int i = left; i <=(left + right)/2; i++)swap(L.data[i], L.data[right -(i - left)]);}voidRecursiveLeftShiftP(SqList &L,int p){
p = p % L.length;Reverse(L,0, L.length -1);Reverse(L,0, L.length - p -1);Reverse(L, L.length - p, L.length -1);}