c++ 数据结构 实验上机题 查找算法 50
1.折半查找对有序表通常可用折半查找的方法来进行查找。设有n个数据元素按其关键字从小到大的顺序存放在一个顺序表中(开始时,查找区间的下限low=0,上限hight=n-1...
1.折半查找
对有序表通常可用折半查找的方法来进行查找。设有n个数据元素按其关键字从小到大的顺序存放在一个顺序表中(开始时,查找区间的下限low=0,上限hight=n-1)。
采用递归或迭代的折半查找算法实现有序表的查找。
输入n个数构造有序表,对于给定的数据x进行折半查找,输出查找结果。若查找成功,则报告成功信息并返回其下标mid;若查找失败,返回-1;
2.平衡二叉树
对于输入的n个数据构造一棵平衡二叉树,并在这棵树上进行查找。
把在平衡二叉树上插入结点的算法用一个独立的函数描述,主函数通过循环来调用这个插入结点的函数构造平衡二叉树。构造完要输出的平衡二叉树的中序和先序序列以判断二叉树的形态。
要求四种平衡旋转都要测试到。
3.散列表
根据给定的散列函数和指定的处理冲突方法,对于输入的n个数据构造散列表,并实现查找和删除数据的操作。
散列函数为:H(x)=xMOD 11,使用线性探测法处理冲突,对于输入的n个数据构造散列表,并实现在散列表上查找和删除数据。要求把在散列表上插入、删除和查找的算法都用独立的函数实现。每次插入、删除后要显示散列表的内容。 展开
对有序表通常可用折半查找的方法来进行查找。设有n个数据元素按其关键字从小到大的顺序存放在一个顺序表中(开始时,查找区间的下限low=0,上限hight=n-1)。
采用递归或迭代的折半查找算法实现有序表的查找。
输入n个数构造有序表,对于给定的数据x进行折半查找,输出查找结果。若查找成功,则报告成功信息并返回其下标mid;若查找失败,返回-1;
2.平衡二叉树
对于输入的n个数据构造一棵平衡二叉树,并在这棵树上进行查找。
把在平衡二叉树上插入结点的算法用一个独立的函数描述,主函数通过循环来调用这个插入结点的函数构造平衡二叉树。构造完要输出的平衡二叉树的中序和先序序列以判断二叉树的形态。
要求四种平衡旋转都要测试到。
3.散列表
根据给定的散列函数和指定的处理冲突方法,对于输入的n个数据构造散列表,并实现查找和删除数据的操作。
散列函数为:H(x)=xMOD 11,使用线性探测法处理冲突,对于输入的n个数据构造散列表,并实现在散列表上查找和删除数据。要求把在散列表上插入、删除和查找的算法都用独立的函数实现。每次插入、删除后要显示散列表的内容。 展开
1个回答
展开全部
二分法查找程序,可以直接运行。
#include<stdio.h>
void main()
{
int beg=0,end=0,mid=0;
int num=0;
int a[8]={1,3,5,9,11,24,56,89};
printf("请输入要查找的数!\n");
scanf("%d",&num);
beg=0;
end=7;
while(beg<=end)
{
mid=(beg+end)/2;
if(a[mid]==num)
{
printf("第%d个元素是要找的元素\n",mid+1);
break;
}
else if(a[mid]<num)
{
beg=mid+1;
}
else
{
end=mid-1;
}
}
if(beg>end)
{
printf("查找失败!\n");
}
}
#include<stdio.h>
void main()
{
int beg=0,end=0,mid=0;
int num=0;
int a[8]={1,3,5,9,11,24,56,89};
printf("请输入要查找的数!\n");
scanf("%d",&num);
beg=0;
end=7;
while(beg<=end)
{
mid=(beg+end)/2;
if(a[mid]==num)
{
printf("第%d个元素是要找的元素\n",mid+1);
break;
}
else if(a[mid]<num)
{
beg=mid+1;
}
else
{
end=mid-1;
}
}
if(beg>end)
{
printf("查找失败!\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
上海华然企业咨询
2024-10-28 广告
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询