不理解为什么需要二叉树。一般数据结构的选择是为需要进行的操作服务的。
不能全转化为秒来计算吗? 2010/10/6 Guannan Ma <myth...@gmail.com>: > Hi, all, > > 最近遇到个问题, 需要设计类似cron里面时间定义的timer数据结构. > > 以下是cron的定义 > > [[[minute hour day_of_month month day_of_week]]] command > > 我需要实现除了command之外的timer数据结构. > > 我目前的想法是如下: > > > minute hour dayof_..... 每一项做二叉线段树 每个线段树存储不交叉的内容. > > 如下(以minute为例): > > [12 ,19] > | | > [1,9] [30 , 38] > | | > [22,28] [40, 50] > | > 52 > > hour dayof ...... 依次类推 > > 做timer的时候, 计算最近的match点剩余的时间(XX秒).并返回. > > (做计算的时候反序 minute<-hour<-day_of_month<-month<-day_of_week 判断最 > 近时间距离(秒为单位), 即 先判断day_of_week 最后判断minute) > > > 一个 > > filter{ > line_item m_h_dom_mon_dow[5]; //分别存 分钟 小时 日 月 星期中的日 > } > > timer_DIY{ > > filter accept[MAX_ACCEPT_SIZE]; //这个是线段树的数组, 可以有N个这样的线 > 段树组成timer. 决策的时候遍历计算, 取最小值为下一次timer的触发时间. > > day array_deny[xx]; //这个是某些特殊的节假日等的filter > } > > > 有谁做过这方面的数据结构嘛? 能分享下 我觉得我的很笨拙.. > > > 谢谢 > > > -- > Guannan Ma <myth...@gmail.com> > > -------------- 下一部分 -------------- > 一个HTML附件被移除... > URL: > https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20101006/a54224db/attachment.htm > -- > ubuntu-zh mailing list > ubuntu-zh@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh > -- ubuntu-zh mailing list ubuntu-zh@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh