河南理工大学数据结构期末上机考试参考代码

前提说明:

此次数据结构期末上机考试是同学们从八道题目中抽取三道作答,笔者把此次八道题目的参考代码统一贴出方便同学们复习。

注:

所有代码均在while(1)中运行

一、斐波那契数列(递归)

#include
using namespace std;
int Fibonacci(int n){
	if(n==1||n==2) return 1;
	return Fibonacci(n-1)+Fibonacci(n-2);
}
int main(){
	int n;
	while(1){
		cin>>n;
		cout<

二、斐波那契数列(非递归)

#include
using namespace std;
int fibonacci[50];
void Fibonacci(){
	int i;
	fibonacci[1]=1;
	fibonacci[2]=1;
	for(i=3;i<=46;i++)
		fibonacci[i]=fibonacci[i-1]+fibonacci[i-2];
}
int main(){
	int n;
	Fibonacci();
	while(1){
		cin>>n;
		cout<

三、十进制转二进制(递归)

#include
using namespace std;
void Transformation(int n){
	if(n>1) Transformation(n/2);
	cout<>n;
		Transformation(n);
		cout<

四、十进制转二进制(非递归)

#include
#include
using namespace std;
stack s;
void Transformation(int n){
	while(n){
		s.push(n%2);
		n/=2;
	}
}
void Result(){
	while(!s.empty()){
		cout<>n;
		Transformation(n);
		Result();
	}
	return 0;
}

五、大整数A+B

#include
#include
#include
using namespace std;
#define MAXSIZE 10000
char aa[MAXSIZE],bb[MAXSIZE];
int a[MAXSIZE],b[MAXSIZE],c[MAXSIZE];
int main(){
	while(1){
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		memset(c,0,sizeof(c));
		cin>>aa>>bb;
		int la=strlen(aa),lb=strlen(bb);
		int i,j;
		for(i=la-1,j=0;i>=0;i--,j++) a[j]=aa[i]-'0';
		for(i=lb-1,j=0;i>=0;i--,j++) b[j]=bb[i]-'0';
		int lc=max(la,lb),p,r=0;
		for(i=0;i=0;i--) cout<

六、直接插入排序

#include
using namespace std;
#define MAXSIZE 20
typedef struct{
	int r[MAXSIZE+1];
	int length;
}SqList;
void InitSqList(SqList &L){
	int n,i;
	cin>>n;
	L.length=n;
	for(i=1;i<=n;i++)
		cin>>L.r[i];
}
void StraightInsertionSort(SqList &L){
	int i,j;
	for(i=2;i<=L.length;i++){
		if(L.r[i]

七、快速排序

#include
using namespace std;
#define MAXSIZE 20
typedef struct{
	int r[MAXSIZE+1];
	int length;
}SqList;
void InitSqList(SqList &L){
	int n,i;
	cin>>n;
	L.length=n;
	for(i=1;i<=n;i++)
		cin>>L.r[i];
}
int Partition(SqList &L,int low,int high){
	L.r[0]=L.r[low];
	int pivotloc=L.r[low];
	while(low=pivotloc) high--;
		L.r[low]=L.r[high];
		while(low

八、简单选择排序

#include
using namespace std;
#define MAXSIZE 20
typedef struct{
	int r[MAXSIZE+1];
	int length;
}SqList;
void InitSqList(SqList &L){
	int n,i;
	cin>>n;
	L.length=n;
	for(i=1;i<=n;i++)
		cin>>L.r[i];
}
void SimpleSelectionSort(SqList &L){
	int i,j,k,t;
	for(i=1;i

你可能感兴趣的:(算法)