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

Python面向对象编程:创建随机二叉搜索树时遇AttributeError

解决Treap实现中的AttributeError问题

从你贴的代码片段和报错信息来看,这个AttributeError的原因非常直观——你在初始化节点优先级的时候,把导入的random模块名拼写错了(写成了rando...,明显是拼写失误或者未完成代码),导致Python找不到对应的属性。

修正后的节点类代码

import random

class TreapNode:
    """Skapar en nod för det randomiserade binära sökträdet"""
    def __init__(self, value = None, parent = None, left_child = None, right_child = None):
        self.val = value
        # 生成随机优先级,这里用整数范围的随机数,也可以用random()返回浮点数
        self.pri = random.randint(1, 10000)  # 替换你未完成的rando...部分
        self.parent = parent
        self.left = left_child
        self.right = right_child

额外的实现提示

  • 优先级的生成可以根据需求选择:用random.randint()生成整数优先级,或者random.random()生成0-1之间的浮点数,只要保证每次创建节点时优先级是随机且均匀分布的即可
  • 后续实现Treap的核心操作(插入、删除、旋转)时,要记住同时维护两个性质:
    • 二叉搜索树性质:左子树所有节点值小于当前节点,右子树所有节点值大于当前节点
    • 堆性质:当前节点的优先级大于等于左右子节点的优先级(通常用大顶堆)
  • 如果你后续还遇到其他报错,可以把完整的错误栈和更多代码贴出来,方便进一步排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:16:34