数据结构索引查找实现标准库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑设计
索引顺序查找主要涉及整型变量和数组整个程序分四大模块(函数):(1)主菜单(main 函数);(2)创建主表函数(CreateDTSSTable);(3)创建索引表函数(CreateIDSStable);(4)查找函数(Search);模块图如图3.1所示:
主表及其索引表如图3.2所示:
图3.1 程序模块图
图3.2 主表及其索引表图
详细设计
(1)创建主表函数
主要运用for循环语句及if条件语句来实现,流程图如下所示:
图4.1 创建主表函数流程图
(2)创建索引表函数
索引表主要分为最大关键字和每块的起始地址,函数主要使用for循环语句及if条件语句来实现,流程图如下所示:
图4.2 创建索引表函数流程图
(4)主函数
图4.4 主函数流程图
程序编码
#include
using namespace std;
int A[100];//用来存放主表
int B[10];//用来存放索引表每块中的最大关键字
int C[10];//用来存放索引表最大关键字所对应的块的初始地址
void CreateDTSSTable(int A[],int num,int b,int s)//创建主表
{
int i,j;
for(i=1;i
{
cout<<"请您依次输入第"<
for(j=1+s*(i-1);j<=s*i;j++)
cin>>A[j];
}
if(i=b)//第b块
{
cout<<"请您依次输入第"<
for(j=s*(b-1)+1;j<=num;j++)
cin>>A[j];
}
}
void CreateIDSStable(int A[],int B[],int C[],int num,int b,int s)//创建索引表{
int i,j,k,max;
for(i=1;i
{
max=A[1+s*(i-1)];
k=1+s*(i-1);
for(j=1+s*(i-1);j<=s*i;j++)
{