参考借鉴课程实验报告docWord文档下载推荐.docx
- 文档编号:14994194
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:24
- 大小:71.37KB
参考借鉴课程实验报告docWord文档下载推荐.docx
《参考借鉴课程实验报告docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《参考借鉴课程实验报告docWord文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
用泛型算法find查找某个随机数,如果找到便输出,否则将此数插入vector尾部。
用泛型算法sort将vector排序,用迭代器遍历vector并输出其中的元素值。
删除vector尾部的元素,用迭代器遍历vector并输出其中的元素值。
将vector清空。
定义一个list,并重复上述实验,并注意观察结果。
(2)练习泛型算法的使用。
定义一个vector,元素类型为int,插入10个随机数,使用sort按升序排序,输出每个元素的值,再按降叙排序,输出每个元素的值。
练习用find查找元素。
用min和maR找出容器中的最小元素和最大元素,并输出。
四、实验结果与分析(源程序及相关说明)
1.练习vector和list的使用:
#include<
iostream>
vector>
iomanip>
ctime>
algorithm>
usingnamespacestd;
vector<
int>
mRV;
boolsortup(intv1,intv2)
{
returnv1<
v2;
}
intmain(intargc,charRargv[])
srand(time(NULL));
for(inti=0;
i<
10;
i++)
mRV.push_back(rand());
sort(mRV.begin(),mRV.end(),sortup);
:
iteratorit1;
for(it1=mRV.begin();
it1!
=mRV.end();
it1++)
cout<
<
(Rit1)<
setw(6);
endl;
intmin=mRV[0];
for(it1=mRV.begin()+1;
if((Rit1)<
min)min=(Rit1);
"
最小元素为"
min<
intmaR=mRV[0];
if((Rit1)>
maR)maR=(Rit1);
最大元素为"
maR<
intvalue=rand();
it1=find(mRV.begin(),mRV.end(),value);
if((Rit1)==value)
找到了这个随机数"
else
没有找到这个随机数"
mRV.insert(mRV.end(),value);
插入尾部的随机数为"
value<
\n"
intt=rand();
mRV.insert(mRV.begin(),t);
插入头部的随机数为"
t<
mRV.pop_back();
mRV.clear();
if(mRV.emptR())
It'
semptR!
sRstem("
PAUSE"
);
//pressanRkeRtocontinue...
return0;
2练习泛型算法的使用:
list>
tRpedeflist<
lin;
intvalue[]={1,6,7,8,9};
voidprint(lin&
l)
inti;
lin:
iteratorlit;
for(lit=l.begin();
lit!
=l.end();
lit++)
(Rlit)<
;
boolsortsp(intv1,intv2)
returnv1>
intmain(){
linlin2;
lin2.push_front(3);
lin2.push_front(4);
lin2.insert(lin2.begin(),value,value+5);
lin2内的元素为:
print(lin2);
lin2.sort();
排序后的lin2:
lin2.push_front(10);
在list头部插入10之后的结果:
lin2.remove(6);
删除一个数后的lin1:
实验二搜索算法的实现
1.掌握宽度优先搜索算法;
2.掌握深度优先搜索算法.
1.预习ICPC讲义中的搜索的内容
2.了解什么是深度优先搜索和广度优先搜索。
1.将书上的走迷宫代码上机运行并检验结果,并注意体会搜索的思想。
2.八皇后问题:
在一个国际象棋棋盘上放八个皇后,使得任何两个皇后之间不相互攻击,求出所有的布棋方法。
上机运行并检验结果。
3.骑士游历问题:
在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径。
4.倒水问题:
给定2个没有刻度容器,对于任意给定的容积,求出如何只用两个瓶装出L升
的水,如果可以,输出步骤,如果不可以,请输出NoSolution
2,八皇后问题:
stdio.h>
#defineN8
#defineNUM8
inth[N][N],n[N],H[N][N];
intcount=0;
voidtrRit(int,int);
voidoutputArraR(int[][N]);
main()
intR=0,R=0,i,j;
for(i=0;
=N-1;
{
for(j=0;
j<
j++)
h[i][j]=0;
}
trRit(R,R);
printf("
......\n"
共有%d种布局.\n"
92);
return(0);
voidtrRit(intR,intR)
inti,j;
if(count<
=NUM)
if((H[0][0]==1&
&
H[1][4]==1&
H[2][7]==1&
H[3][5]==1&
H[4][2]==1&
H[5][6]==1&
H[6][1]==1&
H[7][3]==1)&
count!
=1)
{}
else
if(R>
=0&
R<
=N-1&
R>
h[R][R]==0)
{
for(j=0;
=7;
{
if(h[R][j]==0)
h[R][j]=R+1;
if(h[j][R]==0)
h[j][R]=R+1;
if(R+j>
R+j<
R+j>
h[R+j][R+j]==0)
h[R+j][R+j]=R+1;
R-j>
R-j<
h[R+j][R-j]==0)
h[R+j][R-j]=R+1;
if(R-j>
h[R-j][R+j]==0)
h[R-j][R+j]=R+1;
h[R-j][R-j]==0)
h[R-j][R-j]=R+1;
}
h[R][R]=-R-1;
if(R==7)
for(i=0;
{
for(j=0;
{
if(h[i][j]<
0)
H[i][j]=1;
else
H[i][j]=0;
}
}
count=count+1;
if(count<
printf("
------布局%d------\n"
count);
outputArraR(H);
for(i=0;
if(h[i][j]==R||h[i][j]==-R||h[i][j]==-R-1)
h[i][j]=0;
trRit(R-1,n[R-1]+1);
else
n[R]=R;
trRit(R+1,0);
}
if(R>
7)
if(h[i][j]==R||h[i][j]==-R)
if(R-1>
=0)
else
trRit(0,0);
else
trRit(R,R+1);
voidoutputArraR(inth[][N])
inti,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 参考 借鉴 课程 实验 报告 doc