许多编程语言都提供内置数据结构,尽管某些数据结构(例如链表)易于实现,因此语言通常不包括它作为内置数据结构。一些语言,例如C++(作为
例如,Python已经在其库中内置了几种数据结构,包括列表、元组、集合、字典(甚至不需要导入),以及来自
请注意,Python列表的底层数据结构实际上是一个数组,如"Python列表的底层数据结构是什么?"中所回答的。此外,collections中的deque是一个双端队列,由于通常不支持索引或在中间插入而可能缺少某些功能(但自3.5以来已添加了索引功能和insert,但在Python 2中不存在)。
似乎提供内置的LinkedList数据结构是多余和不必要的。为什么一些其他编程语言库(如C++和Java库)包括LinkedList数据结构,即使它们很容易实现?如果这样做,使用这些语言实现自己的链表有哪些风险?
std::list
,双向链接)和Java(作为LinkedList<T>
,双向链接)则提供了这样的数据结构。例如,Python已经在其库中内置了几种数据结构,包括列表、元组、集合、字典(甚至不需要导入),以及来自
collections
库的数据结构。它没有内置LinkedList
数据结构,因为在Python中,实现自己的LinkedList已经很容易了。请注意,Python列表的底层数据结构实际上是一个数组,如"Python列表的底层数据结构是什么?"中所回答的。此外,collections中的deque是一个双端队列,由于通常不支持索引或在中间插入而可能缺少某些功能(但自3.5以来已添加了索引功能和insert,但在Python 2中不存在)。
似乎提供内置的LinkedList数据结构是多余和不必要的。为什么一些其他编程语言库(如C++和Java库)包括LinkedList数据结构,即使它们很容易实现?如果这样做,使用这些语言实现自己的链表有哪些风险?