数据结构实验五 查找的实现.docx

上传人:b****4 文档编号:3669583 上传时间:2022-11-24 格式:DOCX 页数:7 大小:31.36KB
下载 相关 举报
数据结构实验五 查找的实现.docx_第1页
第1页 / 共7页
数据结构实验五 查找的实现.docx_第2页
第2页 / 共7页
数据结构实验五 查找的实现.docx_第3页
第3页 / 共7页
数据结构实验五 查找的实现.docx_第4页
第4页 / 共7页
数据结构实验五 查找的实现.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

数据结构实验五 查找的实现.docx

《数据结构实验五 查找的实现.docx》由会员分享,可在线阅读,更多相关《数据结构实验五 查找的实现.docx(7页珍藏版)》请在冰豆网上搜索。

数据结构实验五 查找的实现.docx

数据结构实验五查找的实现

实验五查找的实现

一、实验内容

1、建立一个线性表,对表中数据元素存放的先后次序没有任何要求。

输入待查数据元素的关键字进行查找。

为了简化算法,数据元素只含一个整型关键字字段,数据元素的其余数据部分忽略不考虑。

建议采用前哨的作用,以提高查找效率。

2、查找表的存储结构为有序表,输入待查数据元素的关键字利用折半查找方法进行查找。

此程序中要求对整型量关键字数据的输入按从小到大排序输入。

2、源代码和执行结果

1、

#include

usingnamespacestd;

#defineMAX100

#defineKeyTypeint

typedefstruct

{

KeyTypekey;

}DataType;

typedefstruct

{

DataTypeelem[MAX];

intlength;

}SeqTable,*PSeqTable;

PSeqTableInit_SeqTable()

{

PSeqTablep=(PSeqTable)malloc(sizeof(SeqTable));

if(p!

=NULL)

{

p->length=0;

returnp;

}

else

{

cout<<"Outofspace!

"<

returnNULL;

}

}

intinsert_SeqTable(PSeqTablep,KeyTypex)

{

if(p->length>=MAX)

{

cout<<"overflow!

"<

return0;

}

p->elem[p->length].key=x;

p->length++;

return1;

}

intSeqSearch(SeqTables,KeyTypek)

{

intn,i=0;

n=s.length;

s.elem[n].key=k;

while(s.elem[i].key!

=k)

i++;

if(i==n)

return-1;

else

returni;

}

voidmain()

{

PSeqTablep;

inti,n;

KeyTypea;

p=Init_SeqTable();

cout<<"请输入数据个数:

";

cin>>n;

cout<<"请输入数据:

"<

for(i=0;i

{

cin>>a;

insert_SeqTable(p,a);

}

cout<<"请输入要查找的数据,输入32767结束:

";

cin>>a;

while(a!

=32767)

{

i=SeqSearch(*p,a);

if(i==-1)

{

cout<<"无此数据!

请重新输入:

"<

cin>>a;

}

else

{

cout<<"该数据的位置是:

"<

cout<<"请输入要查找的数据:

";

cin>>a;

}

}

}

2、

#include

usingnamespacestd;

#defineMAX100

#defineKeyTypeint

typedefstruct

{

KeyTypekey;

}DataType;

typedefstruct

{

DataTypeelem[MAX];

intlength;

}BinTable,*PBinTable;

PBinTableInit_BinTable()

{

PBinTablep=(PBinTable)malloc(sizeof(BinTable));

if(p!

=NULL)

{

p->length=0;

returnp;

}

else

{

cout<<"Outofspace!

"<

returnNULL;

}

}

intinsert_BinTable(PBinTablep,KeyTypex)

{

if(p->length>=MAX)

{

cout<<"overflow!

"<

return0;

}

p->elem[p->length].key=x;

p->length++;

return1;

}

intBinSearch(BinTables,KeyTypek)

{

intlow,mid,high;

low=0;

high=s.length-1;

while(low<=high)

{

mid=(low+high)/2;

if(s.elem[mid].key==k)

returnmid;

elseif(s.elem[mid].key>k)

high=mid-1;

else

low=mid+1;

}

return-1;

}

voidmain()

{

PBinTablep;

inti,n;

KeyTypea;

p=Init_BinTable();

cout<<"请输入数据个数:

";

cin>>n;

cout<<"请按从小到大的顺序输入数据:

"<

for(i=0;i

{

cin>>a;

insert_BinTable(p,a);

}

cout<<"请输入要查找的数据,输入32767结束:

";

cin>>a;

while(a!

=32767)

{

i=BinSearch(*p,a);

if(i==-1)

{

cout<<"无此数据!

请重新输入:

"<

cin>>a;

}

else

{

cout<<"该数据的位置是:

"<

cout<<"请输入要查找的数据:

";

cin>>a;

}

}

}

 

WelcomeTo

Download!

!

!

 

欢迎您的下载,资料仅供参考!

 

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

当前位置:首页 > 求职职场 > 简历

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

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