Advertisement

[算法][面试]用Python实现跳表示例

阅读量:

核心API:

  1. __find_pre_node(target):用于确定特定值的前驱节点,在查询过程中与插入操作相反,采用自上而下的方式逐层迭代查找。
  2. insert(data):将数据插入到前驱节点之后,并随机决定是否晋升。若发生晋升,则需回溯至上一可提升的节点,随后向上移动并建立对应的上下级连接。
  3. search(target) :通过调用__find_pre_node函数来实现对目标节点的查找功能。
  4. remove(target) :执行节点删除操作,若该节点存在晋升记录,则需向上递归进行删除处理;若被删除的节点为当前层级的最后一个节点,则应将该层级一并移除。
  5. __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)

还没有任何评论哟~