为什么高级语言中缺少这么多数据结构?

Oli*_*nde 5 language-agnostic programming-languages data-structures

为什么更高级别的语言(Javascript,PHP等)不提供链接列表,队列,二叉树等数据结构作为其标准库的一部分?是出于历史/实践/文化原因,还是有一些我缺失的基础知识.

mun*_*ent 8

链表

您可以在大多数动态语言中相当容易地实现链接列表,但它们并不那么有用.对于大多数情况,动态数组(大多数动态语言都内置支持)更适合:它们具有更好的使用和缓存一致性,索引查找的更好性能以及插入和删除方面的良好性能.在应用程序级别,您确实需要链接列表的用例并不多.

队列

使用动态数组轻松实现.

二叉树

二叉树很容易用大多数动态语言实现.二进制搜索树一如既往地是一件苦差事,但却很少需要.Hashtables将为您提供相同的性能,并且通常对于许多用例更好.大多数动态语言都提供内置哈希表(或字典,映射,表或任何您想要调用的表).

了解这些基础数据结构绝对重要,如果您正在编写低级代码,您会发现自己正在使用它们.在使用大多数动态语言的应用程序级别,哈希表和动态数组确实覆盖了95%的数据结构需求.