[算法][面试]用Python实现跳表示例
发布时间
阅读量:
阅读量
核心API:
__find_pre_node(target):用于确定特定值的前驱节点,在查询过程中与插入操作相反,采用自上而下的方式逐层迭代查找。insert(data):将数据插入到前驱节点之后,并随机决定是否晋升。若发生晋升,则需回溯至上一可提升的节点,随后向上移动并建立对应的上下级连接。search(target):通过调用__find_pre_node函数来实现对目标节点的查找功能。remove(target):执行节点删除操作,若该节点存在晋升记录,则需向上递归进行删除处理;若被删除的节点为当前层级的最后一个节点,则应将该层级一并移除。__add_level()/__sub_level(level_head):用于增加或减少结构中的层级数量,需要注意的是当当前节点处于最底层时,不能将层级数减至负数。
一篇讲解: https://mp.weixin.qq.com/s/-1_jchMgIVeUdDhlTQCnnA,原文中的代码实现存在bug,配合下面的python代码理解更方便一些。
基础节点的数据结构:
class Node:
def __init__(self, value):
self.pre
全部评论 (0)
还没有任何评论哟~
