循环数组

在我们今后的编程中,可能会遇到这种情况:
要求给数据链增添数据的同时要删去当前数据链的第一个数据。

看到这个问题,相信好多同学想到了两种方法:
1.用链表。因为我们的数据链是变化的,而且改的是第一个数据和最后一个数据。
首先我对这个想法做一下评价:这种想法是好的,因为它不会像数组一样,浪费极大的空间,但是,这个想法还是有缺陷的,因为我们每增加一个数据,都要改变头指针和增添尾指针,这样下来,十分耗时;
2.用数组。我们只需定义两个变量和一个数组即可用数组实现上述问题,用一个变量存储第一个有效元素下标,另一个数组存储最后一个有效元素的下标,有新数据要录入时,只需将第一个变量和最后一个变量加一即可。这个想法和第一种方法比起来,是缩短了时间,但是,相对地,消耗了极大的空间,所以,这种方法还是不可取。

那么,本人现在来提出一种折中方法,那就是我们这篇博文的主题——循环数组

什么是循环数组呢?
循环数组的实现方法和我们上述的第二种实现方法类似,但是不会无休止的向有效元素后追加元素,由于我们每次增加元素时都会删去前面的元素,所以我们定义有效元素长度的数组即可,往后追加到末尾时,只需将下一个元素放在数组头即可。

即:存储数据和删除数据时,分别要将读取的结束下标 和 起始下标 都进行改动。
这样的话我们可以保证我们的数组空间被充分利用。

说到这里,相信好多同学都大概知道了大概的实现方法了,还是没有想到实现方法的同学,也不要心急,现在,本人来写一个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值