数据结构——清华大学出版社(第二版答案)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4-13
int huiwen(char A[],int s,int e) { if(A[s]!=A[e]) return 0; else if(s>e) return 1; else huiwen(A,s+1,e-1); }
4-15
• • • • • • void frequency(String &s,int C[]) { for (int i=0;i<128;i++) C[i]=0; for (int i=0;i<s.length();i++) C[atoi(s[i])]++; }
3-12
int BaseTrans(int N,int B) { int i,j; int result=0; LinkStack<int> S; while(N!=0) { i=N%B;N=N/B;S.Push(i); } while(!S.Empty()) { S.Top(i);S.Pop(j);result=result*10+i; } return result; }
int mid(int a,int b,int c) { int m1=a,m2; if(b<m1) {m2=m1;m1=b;} else m2=b; if(c<m1) {m2=m1;m1=c;} else if(c<m2) {m2=c;} return m2; }
1-16
char Compare(int a,int b) { if(a>b) return '>'; else if(a==b) return '='; else return '<'; }
template<class T> int List<T>::Count(T x) { int n=0; LinkNode<T> *p=first->link; while(p!=NULL) { if(p->data==x) n++; p=p->link; } cout<<"具有给定值"<<x<<"的元素统计个数为"<<n<<endl; return n; }
4-12
int minmax(const int A[3][4],const int m,const int n) { int *row=new int[m]; int *col=new int[n]; int i,j; for(i=0;i<m;i++) { row[i]=A[i][0]; for(j=1;j<n;j++) if(A[i][j]<row[i]) row[i]=A[i][j]; }
3-16
int akm(int m,int n) { if(m==0) return n+1; else if(n==0) return akm(m-1,1); else return akm(m-1,akm(m,n-1)); }
3-21
int GCD(int m,int n) { if(n==0) return m; else return GCD(n,m%n); }
2-6
void inverse(int A[],int n) { int tmp; for(int i=0;i<=(n-1)/2;i++) { tmp=A[i];A[i]=A[n-i-1];A[n-i-1]=tmp; } }
2-14
template<class T> LinkNode<T> *List<T>::Locate(int i) { if(i<0) return NULL; LinkNode<T> *current=first->link;int k=0; while(current!=NULL&&k<i) { current=current->link;k++; } return curres T> void List<T>::Create(T A[],int n) { LinkNode<T> *p; p=new LinkNode<T>; first=p; for(int i=0;i<n;i++) { p->link=new LinkNode<T>(A[i]); p=p->link; } p->link=NULL; }
1-17
int Count(int a[],int n,int c[]) { int d[5]={20,50,80,130,201}; int i,j; for(i=0;i<5;i++) c[i]=0;
for(i=0;i<n;i++) { if(a[i]<0||a[i]>200) return 0; for(j=0;j<5;j++) { if(a[i]<d[j]) break; } c[j]++; } return 1; }
template<class T> LinkNode<T> *List<T>::Max() { if(first->link==NULL) return NULL; LinkNode<T> *pmax=first->link; LinkNode<T> *p=first->link->link; while(p!=NULL) { if(p->data>pmax->data) pmax=p; p=p->link; } cout<<"最大值为"<<pmax->data<<endl; return pmax; }
作业
1-15
int max(int a,int b,int c) { int m=a; if(b>m) m=b; if(c>m) m=c; return m; }
int min(int a,int b,int c) { int m=a; if(b<m) m=b; if(c<m) m=c; return m; }
for(j=0;j<n;j++) { col[j]=A[0][j]; for(i=1;i<m;i++) if(A[i][j]>col[j]) col[j]=A[i][j]; } for(i=0;i<m;i++) { for(j=0;j<n;j++) if(row[i]==col[j]) cout<<"矩阵的鞍点位于"<<i<<","<<j<<endl; } delete []row; delete []col; return 0; }