#在顺序查找一般线性表中遇到的结构体小问题-王道论坛第六章-查找

在顺序查找一般线性表中遇到的结构体小问题-王道论坛第六章-查找

遇到一些小问题

创建结构体

typedef struct Table//表的数据结构
{
int a;//存储空间基址,可以使用a[0]等方式来随机取数
int len;//表的长度
}Table;
没什么说的。
此处基址只是定义了一个指向int类型的指针,别忘了写初始化函数或者在用时分配空间,用
T.a=(int
)malloc((n+1)sizeof(int));//注意强制类型转换(int)
来分配空间。此题暂定类型为int,分配n+1个空间,分配后可使用a[i]=来使用或赋值。

结构体初始化

Init_Table(Table &T,int len)//别忘了使用传址
{
T.a=(int *)malloc((len+1)*sizeof(int));
T.len=len;//别忘了把len写进T中
for(int i=1;i<=T.len;i++)
{
int k;
cin>>k;
T.a[i]=k;
}
}

查找函数

这一步没什么好说的
int Search_Seq(Table T,int key)
{
T.a[0]=key;
int i=0; //注意i要写在外面,不然就成了循环体里的局部变量了
for(i=T.len;T.a[i]!=key;i–) //从后向前查询,没查询到则输出0(其实是查询到了哨兵的位置0,这就是哨兵的作用)
{} //注意此处写一个括号要不然return就成了
//循环里的语句了
return i;
}

主函数

Table T;
Init_Table(T,8);
int result=Search_Seq(T,3);
for(int k=0;k<=8;k++)
{
cout<<T.a[k]<<" , ";
}
cout<<“在第”<<result<<“位置上”;
int c;
cin>>c;
return 0;

Tips

在C语言中,有一个称为堆(heap)的自由存储区,由malloc和free()来完成动态存储管理。利用malloc()为每个新产生的串分配一个实际串长所分配的存储空间,分配成功,返回一个指向起始地址的指针,作为基地址,失败返回NULL,已分配空间可以用free()释放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值