C/C++知识点之C语言按照索引插入并查找元素的实现教程
小标 2018-08-27 来源 : 阅读 1425 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言按照索引插入并查找元素的实现教程,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言按照索引插入并查找元素的实现教程,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

//我觉得代码基本上都有注释,我也不知道解释什么,有不懂的可以给我发留言;

#include

#define LEN 30

typedef struct

{

int index; //索引值;

int start; //开始位置;

int length; //子表长度;

}Index_Table;

//定义主表数据;

int Master[LEN]=

{

101,102,103,104,105,106,107,108, 0, 0,

111,112,113,114,115,116,117, 0, 0, 0,

211,212,213,214,215,216, 0, 0, 0, 0

};

//定义索引表;

Index_Table Table[3]=

{

{10, 0, 8},

{11,10, 7},

{21,20, 6}

};

//按索引查找;

int IndexSearch(int key)

{

int start,length;

for(int i=0;i<3;i++) //在索引表中查找索引值;

{

if(Table[i].index==key/10) //找到索引值并计算索引值;;

{

start=Table[i].start; //获取数组开始序号;

length=Table[i].length; //获取元素的长度;

break; //跳出循环;

}

}

if(i>=3)

return -1; //索引表中查找失败;

for(i=start;i if(Master[i]==key) //找到关键字;

return i; //返回序号;

}

//插入一个新的关键字;

int InsertNode(int key)

{

int start,length;

for(int i=0;i<3;i++) //在索引表中查找索引值;

{

if(Table[i].index==key/10) //计算索引值;

{

start=Table[i].start; //获取数组开始的序号;

length=Table[i].length; //获取元素长度;

break;

}

}

if(i>=3)

return -1; //索引表中查找失败;

Master[start+length]=key; //保存关键字到主表;

Table[i].length++; //修改索引表的子表长度;

return 0;

}

int main(void)

{

long key;

int i,pos;

printf("原数据:");

for(i=0;i {

if(!(i%10))

printf("\n");

printf("%d ",Master[i]);

}

printf("\n\n");

printf("输入要查找的关键字:");

scanf("%d",&key);

pos=IndexSearch(key);

if(pos>-1)

printf("查找成功,该关键字的索引位置(即下标)为: %d",pos);

else

printf("查找失败!!!");

printf("\n\n");

printf("输入要插入的关键字: ");

scanf("%d",&key);

printf("\n");

if(InsertNode(key)==-1)

printf("插入失败!!!");

else

{

printf("插入关键字后的数据为:");

for(i=0;i {

if(!(i%10))

printf("\n");

printf("%d ",Master[i]);

}

printf("\n");

}

printf("\n");

return 0;

}

//    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved