题解 | #二叉排序树#

二叉排序树

https://www.nowcoder.com/practice/b42cfd38923c4b72bde19b795e78bcb3

class Tnode:#树的结构定义
    def __init__(self, data, left: None, right: None):
        self.data = data
        self.left = left
        self.right = right


def tpx(T: Tnode, v):#二叉排序
    if T == None:
        return
    if v < T.data:
        if T.left == None:
            T.left = Tnode(v, None, None)
        else:
            tpx(T.left, v)
    if v > T.data:
        if T.right == None:
            T.right = Tnode(v, None, None)
        else:
            tpx(T.right, v)

#前序、中序、后序输出
def pre(T: Tnode, pr):
    if not T:
        return
    pr.append(T.data)
    pre(T.left, pr)
    pre(T.right, pr)


def mid(T: Tnode, mi):
    if not T:
        return
    mid(T.left, mi)
    mi.append(T.data)
    mid(T.right, mi)


def post(T: Tnode, po):
    if not T:
        return
    post(T.left, po)
    post(T.right, po)
    po.append(T.data)


while True:
    try:
        n = int(input())
        value = list(map(int, input().split(" ")))
        T = Tnode(value[0], None, None)
        for i in range(1, len(value)):
            tpx(T, value[i])
        pr, mi, po = [], [], []
        pre(T, pr)
        mid(T, mi)
        post(T, po)
        for i in range(len(mi) - 1):
            print(pr[i], end=" ")
        print(pr[len(mi) - 1])
        for i in range(len(mi) - 1):
            print(mi[i], end=" ")
        print(mi[len(mi) - 1])
        for i in range(len(mi) - 1):
            print(po[i], end=" ")
        print(po[len(mi) - 1])
    except:
        break

全部评论

相关推荐

Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务