You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在跳表搜索算法中添加代码以打印搜索路径?

跳表搜索路径节点打印的实现方案

要打印跳表搜索时访问过的所有节点,核心是每次访问到新节点时输出该节点信息。结合你的代码,需在以下关键位置添加输出语句:

  1. 搜索起始节点初始化完成后,输出第一个访问的节点
  2. 每次curr节点被更新(向右移动或向下跳层)后,输出当前节点
  3. 找到目标节点时,在返回前输出该节点(原代码直接return会漏掉)

修改后的完整代码如下:

public SkipListNode<T> search(T key) {

    SkipListNode<T> prev, curr;
    int currlevel;

    for (currlevel = maxLevel; currlevel >= 0 && root[currlevel] == null; currlevel--)
        ;

    if (root[0] == null)
        return null;
    prev = curr = root[currlevel];
    // 输出第一个访问的起始节点
    System.out.println("访问节点: " + curr.key);
    while (true) {
        if (key.equals(curr.key)) {
            // 找到目标节点,输出后返回
            System.out.println("找到目标节点: " + curr.key);
            return curr;
        } else if (key.compareTo(curr.key) < 0) {
            if (currlevel < 1)
                return null;
            else if (curr == root[currlevel]) {
                curr = root[--currlevel];
                // 跳层后输出新节点
                System.out.println("访问节点: " + curr.key);
            } else {
                curr = prev.next[--currlevel];
                // 跳层后输出新节点
                System.out.println("访问节点: " + curr.key);
            }
        } else if (key.compareTo(curr.key) > 0) {
            prev = curr;
            if (curr.next[currlevel] != null) {
                curr = curr.next[currlevel];
                // 向右移动后输出新节点
                System.out.println("访问节点: " + curr.key);
            } else {
                for (currlevel--; currlevel >= 0 && root[currlevel] == null; currlevel--)
                    ;
                if (currlevel >= 0) {
                    curr = curr.next[currlevel];
                    // 跳层后输出新节点
                    System.out.println("访问节点: " + curr.key);
                } else
                    return null;
            }

        }

    } 
}

关键说明:

  • 所有curr变量被重新赋值的位置,都是访问新节点的时机,必须在此添加输出
  • 起始节点是搜索的第一个访问点,需要单独输出
  • 找到目标节点时,要在return前补充输出,确保路径完整

内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:52:45