数据结构- 顺序表习题

王道-数据结构

记录编写过的代码

  • 线性表代码

顺序表部分

//1
bool min (sqlist &L,Elemtype &min){int min=L.data[0];int j;if (L.lenth-1<=0)return false;for (int i=1;i<=L.length;i++){if (a[i]<min){min=a[i];j=i;}a[j]=a[l.length-1];l.lengh--;return ture;}}//2
void invert(sqlist &L){Elemtype e;for(int i=0;i<l.length/2;i++){e=l.data[i];l.data[i]=l.data[length-i-1];l.data[length-i-1]=e;}
}//3
void delect(sqlist &l,elemtype x){int s=0;for(int i=0;i<l.length;i++){if(l.data[i]==x){s++;}else {l.data[i-s]=l.data[i];}l.length-=s;}
}voiod delect(sqlist &L, elemtyp x){int j=0;for (int i=0;i<L.length;i++){if(L.data[i]!=x)L.data[k]=L.data[i];k++;}L.length-=j;
}//4
bool delect(sqlist* L,int s,int t){int i,j;if(j<==s||L.length==0){return false;}for(i=0;i<L.length && data[i]<s;i++)//if(i>=l.length) return false;for(j=i;i<L.length && data[i]<t;j++)//if(j>=l.length) return false;for(; j<L.length;i++){data[i]=data[j];}L.length=L.length-i;return ture;
j}//5
void delect(sqlist* L,int s;int j){int k;for(int i=0;i<l.length;i++)if(data[i]<=s&&data[i]>=j){k++;elseL.data[i-k]=l.data[i];}L->length-=k;}//6
方法一:
void delect(sqlist* L){int k=0;for (int i=0;i<l.length-1;i++){if(data[i]==data[i+1])k++;elseL.data[i-k]=L.data[i];}L->length-=k;
}方法二:
void delect(sqlist &l){for(int i=0,j=1;j<l.length;j++){if(l.data[i]!=l.data[j]){l.data[++i]=l.data[j];}}l.length=i+1;
}//7
//小学生代码:
void combine(sqlist &L,sqlits &S,sqlits &A){int n=0 ,m=0;for(int i=0:i<L.length+S.length;i++){while(m<L.length && n<S.length){if(L.data[m]<S.data[n]){A.data[i]=L.data[m] ;m++;}else{A.data[i]=S.data[n];n++;}}if(m>=L.length)for(;m<L.length;m++)A.data[i]=L.data[m];elsefor (;n<S.length;n++)A.data[i]=S.data[n];}A.length=L.length+S.length;
}//中学生代码:
bool combine(sqlist &A,sqlist &B,sqlist &C){//if(C.MAX<=A.length+B.length)return false;int i=0,s=0,j=0;while(s<A.length&&j<B.length){if(A.data[s]<=B.data[j])C.data[i++]=A.data[s++];elseC.data[i++]=B.data[j++];}if(s>=A.length){while(j<B.length) C.data[i++]=B.data[j++];elsewhile(s<A.length) C.data[i++]=A.data[s++];}C.length=i;return TRUE;}//大学生代码
bool combine(sqlist &A,sqlist &B,sqlist &C){if(C.MAX<=A.length+B.length)return false;int i=0,s=0,j=0;while(s<A.length&&j<B.length){if(A.data[s]<=B.data[j])C.data[i++]=A.data[s++];elseC.data[i++]=B.data[j++];}while(j<B.length) C.data[i++]=B.data[j++];while(s<A.length) C.data[i++]=A.data[s++];C.length=i;return TRUE;}//8void alter(int a[],int m,int n){int mud[m-1];int i=0,j=0;for(;i<m;i++){mud[i]=a[i];}for(j;j<m-n;j++){a[j]=a[m+i];}for(int s=0 ; s<m ; s++){a[j++]=mud[s];}
}//
bool reverse(sqliat &l,int a,int b){if(a<b && b>L.length && a<=0)return false;elemtype s;int j=0;for(int i=a-1;i<b-a/2;i++){s=l.data[i];l.data[i]=l.data[b-j];j++;}return return;
}
void  rev(sqlist &L,int m,int n){reverse(sqlist &L,1,m);reverse(sqlist &L,m+1,n);reverse(sqlist &L,1,n);}//
bool reverse(sqliat &l,int a,int b){if(a<b && b>L.length && a<=0)return false;elemtype s;int j=0;for(int i=a-1;i<b-a/2;i++){s=l.data[i];l.data[i]=l.data[b-j];j++;}return return;
}
void  rev(sqlist &L,int m,int n){reverse(sqlist &L,1,m);reverse(sqlist &L,m+1,n);reverse(sqlist &L,1,n);}//9//小学生代码
bool find(splits &L,emletype x){int j=0,i=0;elemtype a;while (i>=L.length){if (L.data[i++]==x){a=L.data[i+1];L.data[i+1]=L.data[i];L.data[i]=a;return true;}else if(L.data[i++]>x){j=i;if(L.MAX<length-1)return false;for(int s=L.length;s>j;s--){L.data[s]=L.data[s-1];L.data[j]=x;}return true;  }}//大学生代码void Search(sqlist &L,int x){}//10
void Reverse(int R[],int from ,int to ){int i,temp;for(i=0;i<(to-from+1)/2;i++){temp=R[from+i];R[from+i]=R[to-i];R[to-i]=temp;}}
void Converse (int R[],int n,int p ){Reverse(R,0,p-1);Reverse(R,0,n-1);Reverse(R,0,n-i);
}//11
void mud(int a[],int b[],int n){int s1=0,d1=n-1,m1,s2=0,d2=n-1,m2;while(s1!=d1||s2=d2){m1=s1+d1;m2=s2+d2;if(a[m1]==b[m2]){return a[m1];}if(a[m1]<=b[m2]){if ((s1+d1)%2==0){//中位序是奇数s1=m1;d2=m2;}else{s1=m1+1//中位序数是偶数d2=m2;}else{if ((s1+d1)%2==0){//中位序是奇数d1=m1;s2=m2;}else{d1=m1;//中位序数是偶数s1=m2+1;}}}}return a[s1]<b[s2]? a[s1]:b[s2];
}//12
int Majority(int A[],int n){int i,c,count=1;c=A[0];for(i=1;i<n;i++)if(A[i]==c)count++;else{c=A[i];count=1;}if(count>0)for(i=count;i<n;i++)if(A[i]==c)count++;if(count>n/2) return c;else return -1;}//13
int findMissMin(int A[],int n){int i,*B;B=(int *)malloc(sizeof(int)*n);memset(B,0,sizeof(int)*n);for(i=0;i<n;i++)
}void find(a[],int min){int b[],j=0;min=0;for(int i=0;i<sizeof(a)/4;i++){if(a[i]>=0){b[j]=a[i];j++;}for(int i=0;i<j;i++){if (b[i]==min)min++;elsebreak ;}}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部