- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构--实验算法
修改test_bin_serach文件夹下bin_serach.h文件,添加一函数,利用中bin_serach.h内的二分查找算法实现在一个有序表中插入一个元素x,并保持表的有序性。
template class ElemType, class KeyType
void bininsert(ElemType elem[], int n, KeyType key)
{
int low=0,high=n-1,mid,i;
int inplace;
int find=0;
while(low=highfind==0)
{
mid=(low+high)/2;
if(keyelem[mid])
high=mid-1;
else if(keyelem[mid])
low=mid+1;
else
find=1;
}
if(find)
inplace=mid;
else
inplace=low;
for(i=n-1;i=inplace;i--)
elem[i+1]=elem[i];
elem[inplace]=key;
n++;
}
修改test_binary_sort_tree文件夹下binary_sort_tree.h文件,添加一成员函数,采用非递归算法求出二叉搜索树中的关键字最大的元素,并在main.cpp文件中进行测试。
template class ElemType, class KeyType
BinTreeNodeElemType *BinarySortTreeElemType, KeyType::SearchMax()
{
BinTreeNodeElemType *tmp;
if(root==NULL)
return NULL;
tmp=root;
while(tmp-rightChild!=NULL)
{
tmp=tmp-rightChild;
}
return tmp;
}
(选作)设计二分查找的递归算法。
int Binsch( ElemType A[] , int low , int high , KeyType K )
{
if ( low = hight )
{
int mid = (low+high)/2;
if ( K == A[mid].key )
return mid; // 查找成功,返回元素的下标
else if ( K A[mid].key )
return Binsch( A , low , mid-1 , K ); // 在左子表上继续查找
else
return Binsch( A , mid+1 , high , K ); // 在右子表上继续查找
}
else
return -1; // 查找失败,返回-1
}
1.编写一个对整型数组A[n]~A[n-1]元素进行选择排序的算法,要求首先从待排序区间中选择出一个最小值并同第1个元素交换,再从待排序区间中选择出一个最大值并同最后一个元素交换,反复进行直到待排序区间中元素的个数不超过1为止,参考程序如下:
#includeiostream.h
#includestdlib.h
typedef int ElemType;
#define MAXSIZE 100
void DBubbleSort(ElemType A[],int n)
{
ElemType temp;
int i=0,j,flag=1;
while(flag)
{
flag=0;
for(j=n-i-1;j=i+1;j--)
if(A[j]A[j-1])
{
temp=A[j-1];
A[j-1]=A[j];
A[j]=temp;
flag=1;
}
for(j=i+1;j=n-i-2;j++)
if(A[j]A[j+1])
{
temp=A[j];
A[j]=A[j+1];
A[j+1]=temp;
flag=1;
}
i++;
for(j=0;jn;j++)
coutA[j] ;
coutendl;
您可能关注的文档
最近下载
- 《射频识别技术原理与应用实战》全套教学课件.pptx
- 羊的同期发情技术.pptx VIP
- T-CAGHP 035—2018地质灾害排水治理工程设计规范(试行).docx VIP
- 第二批重点监管危险化学品名录.doc VIP
- 劳技课件教学课件.pptx VIP
- Unit 1 I love sports Part 1 (课件)2025-2026学年度外研版(三起)英语四年级上册.pptx VIP
- DBJ43_T393-2022:湖南省房屋建筑和市政工程消防质量控制技术标准.pdf VIP
- 2024年-2025年政工师(初级)理论考试题库及答案(综合题型).pdf VIP
- T∕ZZB 0900-2018 液晶调光玻璃团体标准.pdf VIP
- 朗朗阅读周周练四年级上册(1).pdf VIP
文档评论(0)