数据结构-使用数组作为环

使用数组作为环

综述
环是一种比较复杂的数据结构,能够处理需要重复执行从头到尾循环的逻辑。但是环写起来比较让人费解,不易于维护。如果用相对简单的数组来代替环进行处理,效果会好很多。

需求
有这么一个需求:有一个活动,一个星期内任意几天开启,每次开启都是在每天的0点到24点之间的任意一个时间段。一个活动结束后需要获得下一个活动的开启的倒计时。

解答思路
率先找到该结束活动的第一个相邻的开启的活动,取开启时间与当前时间之差,即是倒计时。需要注意的是,当一个星期的最后一次活动结束,则需要回到星期开始的时候重新计算。这时候就需要用到一个环。

解答1

 1 #include <stdio.h>
  2  
  3 struct loop {
  4     int data;                                                                                                                                                                            
  5     struct loop* next;
  6 };
  7  
  8 int main(int argc, char* argv[])
  9 {
 10     struct loop act[3];
 11  
 12     struct loop head;
 13     head.data = 2;
 14     head.next = NULL;
 15  
 16     act[0].data = head.data;
 17     act[0].next = head.next;
 18  
 19     struct loop node1;
 20     node1.data = 4;
 21     node1.next = NULL;
 22     act[0].next = &act[1];
 23  
 24     act[1].data = node1.data;
 25     act[1].next = node1.next;
 26  
 27     struct loop end;
 28     end.data = 6;
 29</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值