我希望为任何相应的日子制作日历和任务列表-就像大多数日历应用程序一样。这个实践的主要目的是有效地使用数据结构。我想到了两种方法:
-
使用数组表示日历日期,然后制作相应日期的任务链表
另一个问题是:我可以在上面的场景中使用树吗?也许我完全错了。请引导我通过,我渴望学习。
注意:我将使用c++作为我的工具,而不是STL。
对
就时间复杂度而言,您的第一种方法更有效,因为与任何一天相关的任务都可以在常量时间内在数组中访问。但缺点是它会比链表占用更多的空间。
如果对日历日使用链表,则可以每次为每一天添加一个新节点,而不是一次添加所有节点(就像在数组中一样)。所以在这两种情况下,最终的空间使用量是相同的。
就树而言,您可以使用类似Map的关联容器,它通常被实现为自平衡BST,从而在时间(对数)和空间/内存(与日历中存储的天数成正比,但不像数组那样浪费空间)方面为您提供体面的效率。在这种情况下,您可以将日期关联到字符串链表。
如果我是你,我会用map<date,vector<string> >
。