索引查找
来源:互联网 发布:手机变声软件女变男 编辑:程序博客网 时间:2024/06/02 01:08
#include <stdio.h> #define INDEXTABLE_LEN 3#define TABLE_LEN 30typedef struct item{ int index; //索引值 int start; //开始位置 int length; //子表长度 }INDEXITEM;//定义主表数据 long stu[TABLE_LEN]={1080101,1080102,1080103,1080104,1080105,1080106,0,0,0,0,1080201,1080202,1080203,1080204,0,0,0,0,0,0,1080301,1080302,1080303,1080304,0,0,0,0,0,0};//定义索引表 INDEXITEM indextable[INDEXTABLE_LEN]={{10801,0,6},{10802,10,4}, {10803,20,4}};int IndexSearch(int key) //按索引查找 {int i,index1,start,length;index1=key/100;//计算索引值for(i=0;i<INDEXTABLE_LEN;i++) //在索引表中查找索引值 {if(indextable[i].index==index1) //找到索引值 {start=indextable[i].start; //获取数组开始序号 length=indextable[i].length; //获取元素长度 break; //跳出循环 } }if(i>=INDEXTABLE_LEN)return -1;//索引表中查找失败 for(i=start;i<start+length;i++){if(stu[i]==key) //找到关键字 return i; //返回序号 }return -1; //查找失败,返回-1 }int InsertNode(long key){int i,index1,start,length;index1=key/100;//计算索引值for(i=0;i<INDEXTABLE_LEN;i++) //在索引表中查找索引值 {if(indextable[i].index==index1) //找到索引值 {start=indextable[i].start; //获取数组开始序号 length=indextable[i].length; //获取元素长度 break; //跳出循环 }}if(i>=INDEXTABLE_LEN)return -1;//索引表中查找失败 stu[start+length]=key;//保存关键字到主表 indextable[i].length++;//修改索引表中的子表长度 return 0; } int main(){long key;int i,pos;printf("原数据:"); for(i=0;i<TABLE_LEN;i++)printf("%ld ",stu[i]);printf("\n");printf("输入查找关键字:");scanf("%ld",&key);pos=IndexSearch(key);if(pos>0)printf("查找成功,该关键字位于数组的第%d个位置。\n",pos);elseprintf("查找失败!\n");printf("输入插入关键字:");scanf("%ld",&key);if(InsertNode(key)==-1)printf("插入数据失败!\n");else{for(i=0;i<TABLE_LEN;i++)printf("%ld ",stu[i]);printf("\n");} return 0;}
0 0
- 索引查找
- 索引查找
- 索引查找
- 索引查找
- 索引查找
- 索引表 索引查找
- 查找之索引查找
- 索引扫描与索引查找
- 索引扫描与索引查找
- 索引扫描与索引查找
- 分块查找\索引顺序查找
- 索引查找(分块查找)
- 查找重复的索引
- 查找缺失索引
- 索引顺序表查找
- 查找-线性索引,二叉排序树
- 索引查找简单例子
- 线性索引查找
- android格式化日期与时间戳学习
- River的Android学习笔记——数据持久化技术(SharedPreference存储)
- SDUTOJ 2498 AOE网上的关键路径(最长路)
- Hibernate映射解析——关联映射(一)
- Android设备开机后自动启动APP解决方法:(学习篇)
- 索引查找
- ORACLE中DATE自动转化为TIMESTAMP
- 世界上最遥远的距离不是生与死,而是你亲手制造的 BUG 就在你眼前,你却怎么都找不到她……
- MFC 与android 通信编程 -----上篇
- 指向函数的指针定义与使用
- 深刻领悟javascript中的exec与match方法之异同
- hadoop多文件输出
- 04小细节---关于dialog
- SVN安装