登录
  • #刷题
  • #树/链表/图

用 ‍‍‌‌‍‍‌‌‍‍‍‌‍‍‌‌‍‌‍‌‌‌‍‌‍‌‌‍‌‍‍‍Python 等语言写树结构的疑问

dcclogin
2242
9
最近想做几道算法题,但是我并不熟悉用任何刷题用的主流语。我发现我用这些语言似乎表达不出我想要的语义。拿 Python 写二叉树结构为例,我用 Python 的类定义好了 Leaf 和 Node 的结构,假设现在我想定义一个结构或者类型,叫“Leaf 或者 Node”,起名为“Tree”,在 Python 里是怎么处理的呢?或者 Java、C、C++都行。(如下图,我写习惯了 Typed Scheme,所以在接触算法题之前用的都是 Union Type 来表示这些“递归数据类型”,其实就是想在 Python 等主流语言里找个对应的写法)

如果实在没有满足我需求的写法的话,大家用这些语言一般是怎么表示这些“递归数据类型”,以方便刷题需求的呢,不会是树里套表这种的吧?......



另外我还想知道,Python 有什么机制(比如 contract)防止 Node 的左右两边加进去奇怪的东西而不是 Node 或 Leaf ......

[mw_shl_code=python,true]class Node(object):

def __init__(self, l=None, r=None):

self.left = l

self.right = r

class Leaf(object):

def __init__(self, v=None):

self.val = v

def get_val(self):

return self.val[/mw_shl_code]
9条回复
热度排序

发表回复