HIT软件构造MultiIntervalSet中数据结构的设计

我在MultiIntervalSet中设计了两个子类
一个为Nper(命名没有实际意义),用来存储label以及一个time类的链表,用以存储对一个目标的多次排班或调度

class Nper<L>{
	private L label;
	private LinkedList<time> timelist = new LinkedList<time>();
	public Nper(L Nlabel, long Nstart, long Nend) {
		this.label = Nlabel;
		time Ntime = new time(Nstart, Nend);
		timelist.add(Ntime);
	}
}

第二个子类为time,用以储存单次调度的起始时间与终止时间

class time{
	private long start;
	private long end;
	public time(long Nstart, long Nend) {
		this.start = Nstart;
		this.end = Nend;
	}
}

说回MultiIntervalSet

protected LinkedList<Nper<L>> multilabels = new LinkedList<Nper<L>>();

主要的数据结构为<Nper>的链表multilabels,每一个Nper中都会存储一个L label以及对其的调度表timelist。
此种设计的好处就是,当需要取出对某个进程的调度信息(或某门课程的排课信息)时,只需要找到一次相应的Nper就可以调出他的所有时间调度。而对timelist插入时间时会进行排序(time的insert函数),timelist中根据index的大小顺序存储调度发生的时间。当所需调用时会更加的方便且清晰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值