数据结构期末模拟试卷
1、选择
2-1
2-2
2-3
2-4
2-5
2-6
2、编程题
陈氏素数
#include<bits/stdc++.h>
using namespace std;bool isPrime(int r){if(r<2) return false;for(int i=2;i*i<=r;i++){if(r%i==0){return false; }}return true;
}int rNumber(int r){int t=0;while(r>0){t=t*10+r%10;r=r/10;}return t;
}int pNumber(int r){int sum=0;while(r>0){sum=sum+r%10;r=r/10;}return sum;
}int main(){int n;cin>>n;if(n<10){cout << 0 << endl;return 0;}int cnt=0;for(int i=10;i<=n;i++){if(isPrime(i) && isPrime(rNumber(i)) && isPrime(pNumber(i))){cnt++;}}cout<<cnt<<endl;return 0;
}
十进制转换成二进制数
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;if(n==0){cout<<0<<endl;return 0;}vector<int>jinzhi;while(n>0){jinzhi.push_back(n%2);n=n/2;}reverse(jinzhi.begin(),jinzhi.end());for(int i:jinzhi){cout<<i;}cout<<endl;return 0;
}
周末舞会
#include<bits/stdc++.h>
using namespace std;
int main(){int boy,girl,k;cin>>boy>>girl>>k;queue<int>b_q,g_q;for(int i=1;i<=boy;i++){b_q.push(i);}for(int i=1;i<=girl;i++){g_q.push(i);}while(k--){int x,y;x=b_q.front();b_q.pop();y=g_q.front();g_q.pop();cout<<x<<" "<<y<<"\n";b_q.push(x),g_q.push(y);}return 0;
}
查找二叉树
#include<bits/stdc++.h>
using namespace std;
const int N=105;
struct node{int value;int left;int right;
}a[N];
int n;
int target;
int cnt=0;
int result=-1;
void zhongxu(int idx){if(idx==0)return;zhongxu(a[idx].left);cnt++;if(a[idx].value==target){result=cnt;}zhongxu(a[idx].right);
}
int main(){cin>>n;cin>>target;for(int i=1;i<=n;i++){cin>>a[i].value>>a[i].left>>a[i].right;}zhongxu(1);cout<<result<<endl;return 0;
}
愿天下有情人都是失散多年的兄妹
灯泡