- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据实验四程序代码 中国矿业大学
中国矿业大学计算机学院实验报告
课程名称 :数据结构
实验名称 :搜索
班级 :
姓名 :
实验报告要求:
一、实验目的 1 熟练掌握顺序搜索、折半搜索和索引搜索等基本搜索算法,熟悉这些算法适合在何种存储结构下实现2 熟练掌握二叉排序树的特性、建立方法以及动态搜索算法3 熟练掌握散列表的特点及构造方法 二、实验内容与代码
基本题
1、实现基于有序顺序表的折半搜索。
程序代码:
#include stdafx.h
#include iostream
#define MaxSize 100
using namespace std;
// 排序连续顺序文件的折半查找方法
int Bin_Search(int key[],int n,int k)
{
int iLow = 1,iHigh = n,iMid = 0;
while(iLow = iHigh)
{
iMid = (iLow + iHigh) / 2;
if (key[iMid] == k)
{
return iMid; // 查找成功,返回数组中的位置
}
if (k key[iMid])
{
iLow = iMid + 1; // 查找范围缩小到后半部分;
}
else
{
iHigh = iMid - 1; // 查找范围缩小到后半部分;
}
}
return 0;
}
int main(int argc,char* argv[])
{
cout 折半查找的实例,我们用整形数组来调试: endl;
int iArr[MaxSize] = {0};
int iNum1 = 0,iNum;
cout 请输入你想查找的数组的长度: endl;
cin iNum1;
cout 请输入一组数字,按照从小到大的顺序排列: endl;
for (int i = 0;i iNum1;++ i)
{
cin iArr[i];
}
cout 请输入你想搜索的整数的值? endl;
cin iNum;
cout 该整数的位置为: Bin_Search(iArr,iNum1,iNum) + 1 endl;
return 0;
}
程序运行的结果:
2、设单链表的结点是按关键字的值从小到大排列的,试写出对此表的搜索程序并调试。
程序代码:
// 2、设单链表的结点是按关键字的值从小到大排列的,
/*试写出对此表的搜索程序并调试。*/
// database.cpp : 定义控制台应用程序的入口点。
//
#include stdafx.h
#include iostream
using namespace std;
typedef struct Node
{
Node* next;
int iData;
}LNode,*LinkList;
// 创建一个节点数为n的线性链表;
LinkList Creat(int n)
{
LinkList r, p = NULL;
LinkList head = NULL;
int num = 0;
for (int i = 0;i n;++ i)
{
cin num;
p = (LinkList)malloc(sizeof(LNode));
p-iData = num;
p-next = NULL;
if (head == NULL)
{
head = p;
}
else
{
r-next = p;
}
r = p;
}
return head;
}
// 确定元素item在线性表中的位置;
LinkList Locate(LinkList list,int item)
{
if (list != NULL)
{
LinkList p = list;
while(p!=NULL p-iData != item)
{
p = p-next;
}
return p;
}
}
// 在线性非空链表的第一个位置插入一个链接点;
void InsertHead(LinkList list,int item)
{
if (list != NULL)
{
LinkList p = NULL;
p = (LinkList)malloc(sizeof(LNode));
p-iData = item;
p-next = list;
list = p;
}
}
// 在非空线性链表的末尾插入一个元素为item的链接点;
void InsertTai
您可能关注的文档
- 提高基层领导干部要应对网络媒体的能力.doc
- 提升安全生产执行力.doc
- 提高数学课堂探究活动有效性的策略.doc
- 提高异形柱及剪力墙垂直度和平整度Qc成果.doc
- 提高民工队伍素质,保持队伍稳定,建设典范工程.doc
- 提高水平井压裂改造效果技术研究.ppt
- 提升店铺业绩的系统思考与执行之店铺陈列规划.ppt
- 提高深大竖井循环施工速度QC.ppt
- 提高皮带粘结质量,延长皮带使用寿命.ppt
- 提高萃取率选择性的方法.doc
- GB/T 45128-2025塑料 含水量的测定.pdf
- 《GB/T 45128-2025塑料 含水量的测定》.pdf
- 《GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法》.pdf
- 中国国家标准 GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- 中国国家标准 GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
- 《GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD)》.pdf
- 中国国家标准 GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
最近下载
- 第四课 侵权责任与权利界限 【高效课堂精研】高考政治一轮复习统编版选择性必修二法律与生活.pptx
- 长征.ppt VIP
- 2024~2025学年Unit 3 Learning better Part A Let’s talk & let’s learn 单元整体教学设计-三年级下册英语人教PEP版(2024).docx
- 长方体和正方体表面积的变化(增加或减少).pptx VIP
- 部编版《道德与法治》四年级下册第3课《当冲突发生》公开课课件(含视频).pptx
- JELLYCAT毛绒玩具新媒体营销策略分析.docx
- 护理核心制度课件.ppt
- 《消防检查指导手册》(2024版).docx VIP
- 北师大版义务教育小学数学教材知识体系整理.doc VIP
- 水产动物免疫学思考题.docx VIP
文档评论(0)