C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx

上传人:b****2 文档编号:2313653 上传时间:2022-10-28 格式:DOCX 页数:15 大小:16.47KB
下载 相关 举报
C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx_第1页
第1页 / 共15页
C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx_第2页
第2页 / 共15页
C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx_第3页
第3页 / 共15页
C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx_第4页
第4页 / 共15页
C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx

《C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx》由会员分享,可在线阅读,更多相关《C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx(15页珍藏版)》请在冰豆网上搜索。

C++程序设计YDaniel Liang 第十八十九二十章课后习题答案.docx

C++程序设计YDanielLiang第十八十九二十章课后习题答案

Exercise18_2

#include

usingnamespacestd;

//Functionprototype

template

voidarraycopy(Tsource[],intsourceStartIndex,

Ttarget[],inttargetStartIndex,intlength);

template

voidmerge(Tlist1[],intlist1Size,

Tlist2[],intlist2Size,Ttemp[]);

/*Thefunctionforsortingthenumbers*/

template

voidmergeSort(Tlist[],intarraySize)

{

if(arraySize>1)

{

//Mergesortthefirsthalf

T*firstHalf=newT[arraySize/2];

arraycopy(list,0,firstHalf,0,arraySize/2);

mergeSort(firstHalf,arraySize/2);

//Mergesortthesecondhalf

intsecondHalfLength=arraySize-arraySize/2;

T*secondHalf=newT[secondHalfLength];

arraycopy(list,arraySize/2,secondHalf,0,secondHalfLength);

mergeSort(secondHalf,secondHalfLength);

//MergefirstHalfwithsecondHalf

T*temp=newT[arraySize];

merge(firstHalf,arraySize/2,secondHalf,secondHalfLength,

temp);

arraycopy(temp,0,list,0,arraySize);

delete[]temp;

delete[]firstHalf;

delete[]secondHalf;

}

}

template

voidmerge(Tlist1[],intlist1Size,

Tlist2[],intlist2Size,Ttemp[])

{

intcurrent1=0;//Indexinlist1

intcurrent2=0;//Indexinlist2

intcurrent3=0;//Indexintemp

while(current1

{

if(list1[current1]

temp[current3++]=list1[current1++];

else

temp[current3++]=list2[current2++];

}

while(current1

temp[current3++]=list1[current1++];

while(current2

temp[current3++]=list2[current2++];

}

template

voidarraycopy(Tsource[],intsourceStartIndex,

Ttarget[],inttargetStartIndex,intlength)

{

for(inti=0;i

{

target[i+targetStartIndex]=source[i+sourceStartIndex];

}

}

template

voidprintArray(Tlist[],intarraySize)

{

for(inti=0;i

{

cout<

}

cout<

}

intmain()

{

intlist1[]={3,5,1,0,2,8,7};

mergeSort(list1,7);

printArray(list1,7);

doublelist2[]={3.5,0.5,1.4,0.4,2.5,1.8,4.7};

mergeSort(list2,7);

printArray(list2,7);

stringlist3[]={"Atlanta","Denver","Chicago","Dallas"};

mergeSort(list3,4);

printArray(list3,4);

return0;

}

Exercise18_6

#include

usingnamespacestd;

//Tisagenerictype

template

boolordered(Tlist[],intsize);

//Tisagenerictype

template

boolordered(Tlist[],intsize,boolascending);

template

boolordered(Tlist[],intsize)

{

boolordered=true;

for(inti=0;i

if(list[i]>list[i+1]){

ordered=false;

break;

}

returnordered;

}

//Tisagenerictype

template

boolordered(Tlist[],intsize,boolascending)

{

if(ascending)

returnordered(list,size);

boolordered=true;

for(inti=0;i

if(list[i]

ordered=false;

break;

}

returnordered;

}

template

voidprintArray(Tlist[],intarraySize)

{

for(inti=0;i

{

cout<

}

cout<

}

intmain()

{

intlist1[]={3,5,1,0,2,8,7};

cout<

cout<

intlist2[]={1,2,3,5,7,8};

cout<

cout<

cout<

return0;

}

Exercise19_2

#include

#include

#include

usingnamespacestd;

template

ElementTypemaxElement(ContainerType&container,constElementType&value)

{

for(inti=0;i

if(container[i]==value)

returni;

return-1;

}

intmain()

{

intlist1[]={3,5,1,0,2,8,7,6};

vectorintVector(list1,list1+8);

cout<<"Themaximumvalueinlist1:

"<<(maxElement>(intVector,8));

return0;

}

Exercise19_4

#include

#include

#include

usingnamespacestd;

template

voidreverse(ContainerType&container)

{

intcount=0;

//returncount;

}

intmain()

{

intlist1[]={3,5,1,8,2,8,7,6};

vectorintVector(list1,list1+8);

reverse>(intVector);

return0;

}

Exercise19_6

#include

usingnamespacestd;

intv1=10;

intmain()

{

unsignedshortx=0XAEAE>>4;

cout<

return0;

}

Exercise20_2

#include

#include

#include

#include

usingnamespacestd;

intnextNum()

{

srand(time(0));

returnrand();

}

intmain()

{

doublevalues[]={1.3,2.4,4.5,6.7,9.0};

dequedoubleDeque(values,values+5);

dequedoubleDeque1(values,values+5);

ostream_iterator

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

当前位置:首页 > 人文社科 > 法律资料

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

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