我刚刚开始学习数据结构和算法。我使用的是narasimha karumanchi(careermonk)的《python的数据结构和算法思考》一书。
关于链表的主题,练习问题之一是从链表的末尾找到第n个节点。作者提到,使用哈希表是一个更好的解决方案,而不是暴力强迫它。
Screenshot from the book
作者没有提到实现我想知道如何在Python中将其作为类方法或函数进行编码我的意思是,在C/C++中获取内存地址相对容易,但是我不知道如何构造哈希表(字典),正如作者在书中所建议的。
有人能帮忙吗?
谢谢

最佳答案

在python中,您只需构造一个字典,其中键是链接列表中的索引,值是列表本身中的节点。您不需要知道节点的实际内存地址,因为将它们添加到字典中不会创建它们的副本,而是创建对原始对象的另一个引用。
因此,您的代码将以某种类型的集合开始,例如:

linked_index_to_node = {}

然后,对于链接列表中的每个项目,它将按如下方式添加:
# Making some assumptions about what your list looks like here
next_node = linked_list
next_index = 1
while next_node is not None:
    linked_index_to_node[next_index] = next_node
    next_index += 1
    next_node = next_node.next

10-04 14:46
查看更多