- 11
- 0
- 约2.69千字
- 约 9页
- 2020-03-26 发布于江西
- 举报
班级:计算机 11-2
学号:40
姓名:朱报龙
成绩:_________
实验十
一、折半查找验证 1. 实验目的
查找技术验证实验
掌握折半查找算法的基本思想;
掌握折半查找算法的实现方法;
掌握折半查找算法的时间性能。
2. 实验内容
对给定的有序数组(假设长度为 n),查找数组中与给定值 k 相等的元素.
一、 设计与编码
#include iostream
using namespace std;
#define N 15 //定义常量 N 为数组长度
void find(int arr[],int key,int i) //折半查找函数
{
int low=0,high=N-1,mid,j=0; //j 计数查找次数
while(low=high)
{
mid=(low+high)/2; //取中间位
++j;
printf(\n 第%2d 次查找 low=%2d high=%2d mid=%2d ,j,low,high,mid); //显示每次查找低中高位,查找次数
if(arr[mid]==key) //查到数据,跳出循环
break;
if(arr[mid]key) //查找的 KEY 大于中位值,查后半部 low=mid+1;
else
high=mid-1; //查找的 KEY 小于中位值,查前半部
}
if(low=high) //查到数据
printf(\n\n 经过总共%2d 次查找,找到该数字,该数字位于数组第%d 位,\n\n,j,mid+1);//显示查到的数据的值,下标值,总查找次数
else
printf(\n\n 没有找到!); //显示没有找到
}
void main()
{
int arr[N],key,i;
printf(\n 折半查找验证程序,设定被查数据有位,设定为:\n); for(i=0;iN;i++) //输入 15 个排好序的数据
{
arr[i]=i+1;
printf(%d ,arr[i]);
}
printf(\n 请输入要查询的数字(-,输入小于等于零的数字退出验证程 序):);
scanf(%d,key); //输入 KEY
while(key0)
{
find(arr,key,N); //调用折半查找函数
printf(\n 请输入要查询的数字(-,输入小于等于零的数字退出验证程 序):);
scanf(%d,key); //输入 KEY
}
}
a) 程序运行的结果如何?
二、二叉排序树的建立 1. 实验目的
掌握二叉排序树定义和特性; 掌握二叉排序树的建立方法; 实现基于二叉排序树的查找技术; 掌握二叉排序树的查找性能。
2. 实验内容
⑴ 对给定的一组无序序列,建立一棵二叉排序树; ⑵ 对建立的二叉排序树实现查找操作。
二、 设计与编码
#includeiostream
using namespace std;
class BT
{
public :
BT(void)//构造函数
{
void InitBiTree(BiTree *t); cout初始化结束!\n;
}
//存储结构——二叉链表
typedef struct Lnode
{
int key;
struct Lnode *lchild,*rchild;
}BiTnode,*BiTree;
//创建、初始化
void InitBiTree(BiTree *t)
{
*t=NULL;//置空
}
//输出中序遍历二叉树
void InorderBiTree(BiTree p)
{
if(p)//p 为空,则空操作,否则继续执行 {
InorderBiTree(p-lchild);
coutp-key ;
InorderBiTree(p-rchild);
}
}
//查找数据
BiTree SearchBST(BiTree t, int k)
{
BiTree p;
p=t;
while((p!=NULL)(p-key!=k))
if(kp-key)
p=p-lchild;
else
p=p-rchild;
return(p);
}
//插入数据
void InsertBST(BiTree *t,int k)
{
BiTnode *f,*p=*t;
while(p)
{
if(p-key==k)
return;
f=p;
p=(kp-key)?p-lchild:p-rchild;
}
p=(BiTree)malloc(sizeof(BiTnode));
p-key=k;
p-lchild=p-rchild=NULL;
if(*t==NULL)
*t=p;
else if (kf-key)
f-lchild=p;
else
f-rchild=p;
}
//在二叉排序树*t 中删除关
原创力文档

文档评论(0)