我是Python首选的学生,并且对链表有疑问

时间:2019-06-27 19:29:32

标签: python-3.x linked-list

对于其他语言(例如c ++),我理解它们具有直接定位变量位置的指针,因此使用链表来提高内存效率。但是,在Python中没有指针。那么,由于没有办法直接访问每个节点,因此链表不值得使用吗?我看到了很多与链表相关的编码挑战或编码访谈。为什么人们仍然在python中使用链表,而我们却拥有一个很棒的内置数组?

2 个答案:

答案 0 :(得分:0)

这里有两件事要注意。

首先,pointer中的LinkedListpointerC中的C++不同。尽管它们通过“指向”其他事物来执行相同的操作,但它们并非同一回事。

接下来,LinkedList指针指向LinkedList中的下一项,而C pointer指针指向内存中的位置。这是关键的区别。

要注意的另一件事是,Python大多数情况下是用C编写的,因此对C重要的事情对Python也很重要。

LinkedList的一些好处是,它节省了大量内存,因为它只考虑填充值,而不是为整个数组分配内存的数组。另一个重大好处是LinkedList可以存在于内存中的任何位置(由于指针!),而数组必须位于静态位置。从速度,内存优化和安全角度来看,这是一个好处。

还应注意,Python确实没有内置array,可以说,它们具有内置list,所以这很容易理解。

答案 1 :(得分:0)

这是为了加深您对Python内置实现下的数据结构的理解。您应该知道它们是如何工作的,即使它们是用Python抽象出来的。理查德·费曼(Richard Feynman)说:“知道如何解决已经解决的每个问题。”在编程中,您会遇到许多已经比以前做得更好的事情,并且您应该使用人们已经开放的源代码和创建的工具供您使用,但是您还应该知道它们的工作方式。 / p>