【发布时间】:2018-12-22 23:36:01
【问题描述】:
存在数组、链表、队列、堆栈、二叉树等数据结构。像 Java 或 C++ 这样的语言已经在很大程度上实现了它们,并且存在可以在任何程序或应用程序中使用的 API。根据需要,可以选择特定的数据结构。
我的问题是需要知道实现细节。例如,如果搜索是程序的重复任务,那么仅知道可以使用数组而不是链表是不够的。
我是新手,可能连问这样的问题都太天真了。甚至面试也非常关注它们的实施方式。请帮我理解。
谢谢!
【问题讨论】:
-
如果您不知道它们是如何实现的,那么您就不知道在哪种情况下选择哪个。如果您被要求选择一种允许您快速插入和迭代的数据结构,您如何在不知道每个数据结构如何工作的情况下选择正确的数据结构?
-
当我阅读在线教程中每种数据结构的理论时。它总结说链表比数组更适合插入/删除,但不支持随机访问。其中一些还提供了理论上的实现细节。我需要编码和实现什么?这可能对我有好处,但是否有必要包括重点关注他们的采访。只是想真正地理解。我可能错过了许多其他人看到的东西
-
为了进一步澄清,我在理论上也理解,例如,每个节点的链表,都有数据和对下一个节点的引用,因此要到达一个元素,必须按顺序遍历,而不像数组是索引基于。我是否必须编写/实现相同的代码。这还不够了解吗?
-
实现是理解的证明。如果你真正了解,那么实施就很容易了。
-
同意。实施真正巩固了理解。
标签: java c++ algorithm data-structures