算法导论 练习题 11.1-2

直接寻址表里1表示关键字在集合S中,0表示不在。


这里一般实际处理会更复杂一些,比如用char[LEN]存放10进制数字,每个数字8位,一共可以存放8*LEN位,代表8*LEN个key

要寻找某一个key,先用key/8找到数组下标i,再用key%8找到“位”的位置,用char[i]&(1<<j) == (1<<j)判断是否存在

比如寻找值为33的key,先计算数组下标33/8=4,找到char[4],比如值为10。然后用33%8=1,找到位的位置1,最后10&(1<<1) == (1<<1)判断33存在


插入和删除也要通过位运算(插入用或运算,删除用与运算)对char[LEN]数组进行修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值