我了解其他语言(例如C (,它们具有直接定位变量位置的指针,使用链接列表来获得内存效率。但是,在Python中没有指针。因此,由于无法直接访问每个节点,因此链接列表不值得使用吗?我看到了很多与链接列表相关的编码挑战或编码访谈。为什么人们仍然使用python中的链接列表,而我们有一个很棒的内置阵列?
这里有几件事要注意。
首先,LinkedList
中的pointer
与C
或C++
中的pointer
不同。尽管他们通过"指向"其他东西而行动相同,但它们不是同一回事。
接下来,LinkedList
指针指向LinkedList
中的下一个项目,而C pointer
指向内存中的位置。那是一个关键区别。
要注意的另一件事是,python在大多数情况下是用C
编写的,因此对C
很重要的事情对Python也很重要。
linkedlist的一些好处是它节省了很多内存,因为它仅说明填充值与数组,该数组为整个数组的整个大小分配内存。另一个最大的好处是,LinkedList可以在内存中的任何地方都存在(多亏了指针!(,而阵列必须留在静态位置。这是速度,内存优化和安全角度的好处。
还应注意,python确实没有array
内置,可以这么说,它们内置了list
,因此可以吸引自己。
它是为了加深您对Python内置实现下的数据结构的理解。即使它们在Python中抽象出来,您也应该知道它们的工作原理。理查德·费曼(Richard Feynman(说:"知道如何解决已解决的所有问题。"在编程时,您会遇到许多已经做得比以往任何时候做得更好的事情,并且您应该使用人们打开并创建供您使用的那些工具,但您还应该知道它们的工作原理。<<<<<<<</p>