第七次数据结构上机实验报告Word文档下载推荐.docx
- 文档编号:20989659
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:26.70KB
第七次数据结构上机实验报告Word文档下载推荐.docx
《第七次数据结构上机实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第七次数据结构上机实验报告Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
hlist[i].k=0;
hlist[i].si=0;
};
for(i=0;
N;
{sum=0;
adr=(oldlist[i].k)%M;
d=adr;
if(hlist[adr].si==0)
{hlist[adr].k=oldlist[i].k;
hlist[adr].name=oldlist[i].name;
hlist[adr].py=oldlist[i].py;
hlist[adr].si=1;
}
else
{do
{d=(d+((oldlist[i].k))%10+1)%M;
/*伪随机*/
sum=sum+1;
while(hlist[d].k!
=0);
hlist[d].k=oldlist[i].k;
hlist[d].name=oldlist[i].name;
hlist[d].py=oldlist[i].py;
hlist[d].si=sum+1;
}
/***************************************/
voidfindhlist()
{ints0;
charr,g;
clrscr();
/*清屏*/
for(r=0;
r<
20;
r++){z[r]=0;
gotoxy(1,1);
printf("
RESEARCH....."
);
gotoxy(5,10);
inputthespellofname:
"
gotoxy(5,12);
scanf("
%s"
z);
s0=0;
r++){s0=z[r]+s0;
gotoxy(5,13);
printf("
%d"
s0);
/*for(i=0;
i++)*/
sum=1;
adr=s0%M;
if(hlist[adr].k==s0)
{
gotoxy(18,18);
%s"
hlist[d].name);
gotoxy(18,19);
hlist[d].py);
gotoxy(18,20);
find%dtimes"
sum);
getch();
{if(hlist[adr].k==0)
{gotoxy(18,18);
nothingaboutit!
{g=0;
g==0;
{d=(d+s0%10+1)%M;
/*伪随机*/
if(hlist[d].k==0)
g=1;
getch();
find%dtimes"
if(hlist[d].k==s0)
{g=1;
gotoxy(18,21);
find%dtimesuntilsuccess!
voidinp()/*输入表*/
{
char*f;
intr,s0;
oldlist[0].name="
A"
oldlist[0].py="
apple"
oldlist[1].name="
B"
oldlist[1].py="
bus"
oldlist[2].name="
C"
oldlist[2].py="
cat"
oldlist[3].name="
D"
oldlist[3].py="
dog"
oldlist[5].name="
E"
oldlist[5].py="
egg"
oldlist[6].name="
F"
oldlist[6].py="
fly"
oldlist[7].name="
G"
oldlist[7].py="
good"
oldlist[8].name="
H"
oldlist[8].py="
hurt"
oldlist[9].name="
I"
oldlist[9].py="
int"
oldlist[10].name="
J"
oldlist[10].py="
joy"
oldlist[11].name="
K"
oldlist[11].py="
keep"
oldlist[12].name="
L"
oldlist[12].py="
long"
oldlist[13].name="
M"
oldlist[13].py="
make"
oldlist[14].name="
N"
oldlist[14].py="
net"
oldlist[15].name="
O"
oldlist[15].py="
out"
oldlist[16].name="
P"
oldlist[16].py="
pour"
oldlist[17].name="
Q"
oldlist[17].py="
queen"
oldlist[18].name="
R"
oldlist[18].py="
run"
oldlist[19].name="
S"
oldlist[19].py="
sun"
oldlist[20].name="
T"
oldlist[20].py="
tea"
oldlist[21].name="
U"
oldlist[21].py="
until"
oldlist[22].name="
V"
oldlist[22].py="
vection"
oldlist[23].name="
W"
oldlist[23].py="
water"
oldlist[24].name="
X"
oldlist[24].py="
xray"
oldlist[25].name="
Y"
oldlist[25].py="
you"
oldlist[26].name="
Z"
oldlist[26].py="
zoo"
oldlist[27].name="
AA"
oldlist[27].py="
aah"
oldlist[28].name="
BB"
oldlist[28].py="
bbc"
oldlist[29].name="
CC"
oldlist[29].py="
cch"
/*请在此输入数据,同时修改程序开头的MLN*/
for(i=0;
f=oldlist[i].py;
*(f+r)!
='
\0'
r++){s0=*(f+r)+s0;
oldlist[i].k=s0;
/****************************************/
voiddhash()/*显示哈希表*/
{charLON=17;
if(LON>
L){LON=L;
HashTable:
gotoxy(1,2);
address:
for(i=0;
LON;
{gotoxy(1,i+3);
%-3d"
i);
gotoxy(9,2);
theH(key)is:
{gotoxy(10,i+3);
%-6d"
hlist[i].k);
gotoxy(19,2);
name:
{gotoxy(19,3+i);
hlist[i].name);
gotoxy(28,2);
spell:
{gotoxy(28,i+3);
hlist[i].py);
gotoxy(40,2);
thelength:
{gotoxy(43,i+3);
%2d"
hlist[i].si);
gotoxy(53,2);
H(key):
{gotoxy(53,i+3);
(hlist[i].k)%M);
average=0;
{average=average+hlist[i].si;
average=average/N;
gotoxy(10,23);
ASL:
ASL(%d)=%f"
N,average);
gotoxy(20,24);
anykeytopass"
ch1=getch();
if(L>
15)
L-15){LON=L-15;
i+15);
hlist[i+15].k);
hlist[i+15].name);
hlist[i+15].py);
hlist[i+15].si);
(hlist[i+15].k)%M);
anykeytopass"
if(L>
30)
L-30){LON=L-30;
i+30);
hlist[i+30].k);
hlist[i+30].name);
hlist[i+30].py);
hlist[i+30].si);
(hlist[i+30].k)%M);
45)
L-45){LON=L-45;
i+45);
hlist[i+45].k);
hlist[i+45].name);
hlist[i+45].py);
hlist[i+45].si);
(hlist[i+45].k)%M);
anykeytopass!
/**************************************/
voidmain()
{inp();
/*输入原表*/
chash();
/*建哈希表*/
a:
gotoxy(21,2);
**************************************\n"
Welcometouse!
\n"
gotoxy(22,4);
1.PrinttheHashTable."
gotoxy(22,6);
2.Research."
gotoxy(22,8);
3.Exit"
gotoxy(22,12);
\nYourchoiceis:
gotoxy(24,14);
if(ch1==0x33){
Thankyouforyourusing"
exit(0);
/*"
x"
:
退出*/
if(ch1==0x31){dhash();
/*表的属性*/
if(ch1==0x32){findhlist();
/*查找*/
gotoa;
运行结果:
有错误。
2、
2.编写程序,判断一棵二叉树是否为二叉排序树(习题集P589.31)
若根结点的关键字值等于查找的关键字,成功。
否则,若小于根结点的关键字值,递归查左子树。
若大于根结点的关键字值,递归查右子树。
若子树为空,查找不成功。
iostream>
algorithm>
usingnamespacestd;
structNode
{
intelement;
Node*left;
Node*right;
Node(intele=0,Node*l=NULL,Node*r=NULL)
:
element(ele),left(l),right(r){}
//插入结点
voidInsertNode(Node*&
root,intelement)
if(NULL==root)
root=newNode(element);
elseif(element<
root->
element)
InsertNode(root->
left,element);
else
right,element);
}
//创建二叉搜索树
voidCreateBinSearchTree(Node*&
root,intarr[],intn)
for(inti=0;
i<
n;
++i)
InsertNode(root,arr[i]);
//中序输出
voidMiddlePrint(Node*root)
if(NULL!
=root)
{
MiddlePrint(root->
left);
cout<
<
root->
element<
right);
}
//函数功能:
二叉排序树的判定算法
/*
算法思想:
根据二叉树的特点“其中序遍历序列为有序序列”,对二叉树进行中序遍历,
同时检查当前结点与其中前驱关键字值的大小。
*/
//中序遍历过程中判定给定的二叉树是否为二叉排序树,入是返会true,否则返回false
//pre指向中序前驱结点,初值为NULL
boolIsBinSearchTree(Node*root,Node*pre)
if(NULL==root)//空二叉树也是二叉排序树
returntrue;
//左子树为二叉排序树且关键字值大于前驱结点关键字值,
//此时,是否为二叉树却决于右子树
if(IsBinSearchTree(root->
left,pre))
if((NULL==pre)||(pre->
element<
element))
pre=root;
returnIsBinSearchTree(root->
right,pre);
returnfalse;
intmain()
constintN=10;
int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 数据结构 上机 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)