我目前还在上学并参加了用c ++实现数据结构的课程.在业余时间,我喜欢用"更高级"语言编程(大多数是带有一些c#的Ruby).
因此,由于这些更高级别的语言为您管理内存,您将使用什么数据结构?我可以理解对队列和堆栈的需求,但是你是否需要在Ruby中使用二叉树?还是2-3-4树?为什么?
谢谢.
因此,由于这些更高级别的语言为您管理内存,您将使用什么数据结构?
使用数据结构的主要原因不是垃圾收集.但它是以某种方式存储数据的方式.所以最重要的是你如何组织数据.这正是语言无法自动为您解决的问题.
当然,高级语言将带有几个预加载的数据结构(并且您应该100%使用这些预加载的数据结构,而不是自己创建),但并非所有数据结构都是您可能需要的.
数据结构以某种方式组织存储器,以便可以实现在其上运行的算法,从而提供有效的结果.
对于大多数任务,您不需要实现自己的数据结构.但这完全取决于你编码的内容.
我可以理解对队列和堆栈的需求,但是你是否需要在Ruby中使用二叉树?
有很多使用二叉树的例子,但每天都没有共同的项目,例如你可能需要实现霍夫曼编码.
其他数据结构可用于节省空间和快速查找使用trie,或者您可能需要通过使用btree快速查找来存储大量数据.一些数据结构具有特定用途,并针对不同的事物进行了优化 语言是否现代以及是否有垃圾收集都不会改变它.
然而,趋势是自定义实现的数据结构编码较少,并且考虑较少.常见算法也会出现类似的争论.在更现代的语言中,比如LINQ,您只需指定排序即可.你实际上并没有说如何排序.
根据我使用Python的经验(表面上类似于Ruby),我从来没有必要实现二叉树或哈希映射或类似的东西.但之所以与托管内存关系不大.在标准库中有最有用的结构的实现,如字典(hashmaps)和列表; 为了提高速度和效率,它们(至少部分地)以编写解释器的任何低级语言实现,并且它们几乎肯定会胜过您可能提出的任何自定义实现.