2016数据结构基础(C语言版)习题及答案(英文版).docx

上传人:b****9 文档编号:72911 上传时间:2022-10-02 格式:DOCX 页数:171 大小:971.76KB
下载 相关 举报
2016数据结构基础(C语言版)习题及答案(英文版).docx_第1页
第1页 / 共171页
2016数据结构基础(C语言版)习题及答案(英文版).docx_第2页
第2页 / 共171页
2016数据结构基础(C语言版)习题及答案(英文版).docx_第3页
第3页 / 共171页
2016数据结构基础(C语言版)习题及答案(英文版).docx_第4页
第4页 / 共171页
2016数据结构基础(C语言版)习题及答案(英文版).docx_第5页
第5页 / 共171页
点击查看更多>>
下载资源
资源描述

2016数据结构基础(C语言版)习题及答案(英文版).docx

《2016数据结构基础(C语言版)习题及答案(英文版).docx》由会员分享,可在线阅读,更多相关《2016数据结构基础(C语言版)习题及答案(英文版).docx(171页珍藏版)》请在冰豆网上搜索。

2016数据结构基础(C语言版)习题及答案(英文版).docx

数据结构基础(C语言版)

习题及答案

(英文版)

目录

CHAPTER1 2

CHAPTER2 24

CHAPTER3 44

CHAPTER4 63

CHAPTER5 79

CHAPTER6 96

CHAPTER7 125

CHAPTER8 139

CHAPTER9 140

CHAPTER10. 142

CHAPTER11. 147

CHAPTER12. 170

109页 171页

CHAPTER1

Chapter1,Pages16-17

Problem1.aThisstatementisapoorlyphrasedversionofFermat'slasttheorem.Weknowthatwecanfindn>2forwhich‚theequationholds.Fermatscribbledanoteonatextmarginindicatingthathehadfoundthesolutionforn=2.Unfortunately,theproofdiedwithhim.Becausethestatementisphrasedasaquestion‚ratherthanaclearlydefinedalgorithm,itlacksdefiniteness.

Problem1.bThisstatementviolatesnotonlytherulesofmathematics,butthecriterionofeffectiveness.Wecancomputeonlythosethingsthatarefeasible,anddivisionbyzeroismathematicallyundefined

Page17,Exercise3

#include#include#include

#defineTRUE1

#defineFALSE0

#defineMAX_STRING100voidtruth_table(int);

intmain(){intn;

printf("n:

(>=0):

");scanf("%d",&n);while(n<=0)

{/*errorloop*/printf("n:

(>=0):

");scanf("%d",&n);

}

truth_table(n);

}

voidtruth_table(intn)

{/*generateatruth_tablebytransforming#ofpermutationsintobinary*/

inti,j,div,rem;

charstring[MAX_STRING];for(i=0;i

{/*numberofpermutationsorrowsinthetable*/strcpy(string,"\0");

div=i;

for(j=n;j>0;j--)

{/*numberofbitsneededforeachrow*/rem=div%2;

div=div/2;

if(!

rem)strcat(string,"FALSE");elsestrcat(string,"TRUE ");

}

printf("%s\n",string);

}

}

Page17,Exercise4

#include

intmin(int,int);#defineTRUE1

#defineFALSE0

intmain()

{

intx,y,z;

printf("x:

");scanf("%d",&x);

printf("y:

");scanf("%d",&y);

printf("z:

");scanf("%d",&z);

if(min(x,y)&&min(y,z)){/*xissmallest*/printf("%d",x);

if(min(y,z))printf("%d%d\n",y,z);

elseprintf("%d%d\n",z,y);

}

elseif(min(y,x)&&min(y,z)){/*yisthesmallest*/printf("%d",y);

if(min(x,z))printf("%d%d\n",x,z);

elseprintf("%d%d\n",z,x);

}

else

printf("%d%d%d\n",z,y,x);

}

intmin(inta,intb){

if(a

}

Page17,Exercise7

#include

doubleiterFact(int);doublerecurFact(int);

intmain(){intn;

printf("n:

(>=0):

");

scanf("%d",&n);while(n<0)

{/*errorloop*/

printf("n:

(>=0):

");scanf("%d",&n);

}

printf("%dfactorialis%f.\n",n,iterFact(n));printf("%dfactorialis%f.\n",n,recurFact(n));

}

doublerecurFact(intn)

{/*recursiveversion*/

if((n==0)||(n==1))return1.0;returnn*recurFact(n-1);

}

doubleiterFact(intn)

{/*findthefactorial,returnasadoubletokeepitfromoverflowing*/

inti;

doubleanswer;

if((n==0)||(n==1))return1.0;answer=1.0;

for(i=n;i>1;i--)answer*=i;

returnanswer;

}

Page17,Exercise8

#include

intiterFib(int);intrecurFib(int);

intmain(){intn;

printf("n:

(>=0):

");

scanf("%d",&n);while(n<0)

{/*errorloop*/

printf("n:

(>=0):

");scanf("%d",&n);

}

printf("%dFibonacciis%d.\n",n,iterFib(n));printf("%dFibonacciis%d.\n",n,recurFib(n));

}

intrecurFib(intn)

{/*recursiveversion*/

if((n==0)||(n==1))return1;returnrecurFib(n-1)+recurFib(n-2);

}

intiterFib(intn)

{/*findthefactorial,returnasadoubletokeepitfromoverflowing*/

inti;

intfib,fib1,fib2;

if((n==0)||(n==1))return1;fib1=fib2=1;

for(i=2;i<=n;i++){fib=fib1+fib2;fib2=fib1;

fib1=fib;

}

returnfib;

}

Page17,Exercise9

#include

doublerecurBinom(int,int);doubleiterBinom(int,int);doublerecurFact(intn);

intmain(){

intn,m;printf("n:

(>=0):

");scanf("%d",&n);while(n<0)

{/*errorloop*/printf("n:

(>=0):

");scanf("%d",&n);

}

printf("m:

(>=0):

");scanf("%d",&m);while(m<0)

{/*errorloop*/printf("m:

(>=0):

");scanf("%d",&m);

}

printf("n:

%dm:

%dRecursiveBinomialcoefficientis%f.\n",n,m,recurBinom(n,m));printf("n:

%dm:

%dIterativeBinomialcoefficientis%f.\n",n,m,iterBinom(n,m));

}

doubleiterBinom(intn,intm)

{/*definedasn!

/(m!

-(n-m)!

)*/inti;

doublenFact,mFact,nMinusMFact;if(n==m)return1;

if((n==0)||(n==1))nFact=1;else {

nFact=1;

for(i=n;i>1;i--)nFact*=i;

}

if ((m==0)||(m==1))mFact=1;else{

mFact=1;

for(i=m;i>1;i--)mFact*=i;

}

if(((n-m)==0)||((n-m)==1))nMinusMFact=1;else {

nMinusMFact=1;

for(i=n-m;i>1;i--)nMinusMFact*=i;

}

returnnFact/(mFact*nMinusMFact);

}

doublerecurFact(intn)

{/*recursiveversion*/

if((n==0)||(n==1))return1.0;returnn*recurFact(n-1);

}

doublerecurBinom(intn,intm)

{/*recursiveversion*/

returnrecurFact(n)/(recurFact(m)*recurFact(n-m));

}

Page17,Exercise11

#include

#defineTower11

#defin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1