最近自走棋游戏挺有意思的,想自己模拟个自走棋游戏的后端,大概就是需要不同棋子按照时间顺序依次执行各自的任务,然后各自的任务执行结果又会影响任务队列本身这样。
想了想,大概需要维护一个类似于时间循环的东西,需求大概是:
- 维护一个顺序队列
- 要能弹出任务,时间复杂度最好是 O(1)
- 要能插入新任务,复杂度不超过 O(logN)
- 要能修改已存在的任务
不知道该用啥数据结构,有没有大佬提提意见。如果用各种树的话,感觉平衡树不太适合任务队列?任务队列需要频繁删除栈底,用树感觉很亏。如果单纯是一个数组然后用类似快排的思路实现插入和修改(先查找再插入),感觉也是效率很低。一时想不到啥合适的,学艺不精了属于是