假设我正在尝试设计一种算法来解决问题。
我该怎么办?
我如何理解哪种数据结构适合解决我的问题?
当试图设计一个算法来评估中缀表达式时,我认为使用两个堆栈来解决问题是合适的。但后来我发现需要树来完成这项工作。
实施者是如何知道树适合的?
答案 0 :(得分:2)
没有经验法则。对于您的特定问题,可能需要一个全新的数据结构。这通常发生在AI问题中,这就是为什么Lisp是如此方便的语言,因为很容易从列表构建新的数据结构。 (或实际上是s表达式,相当于树)。
但是,您在工作环境中遇到的大多数问题都更为平凡,并且可以使用标准数据结构轻松解决。过了一段时间,你开始将某些问题与某些解决方案联系起来(快速获取一些东西?一个哈希表。快速获得一些东西但也有一些排序要求?一棵树)并且可以将一个更复杂的问题分解成可以用这些解决的更简单的组件标准数据结构的类型。
答案 1 :(得分:0)
首先:了解问题。
第二:确定您的存储,搜索和逻辑要求。
这通常足以了解哪些数据结构是必需的和适当的。
除此之外,你的问题太笼统,而且包含的信息太少而无法准确回答。
答案 2 :(得分:0)
首先要正确理解情况,然后再考虑哪个是最适合这个问题的。合适的手段,速度快,记忆力小。