zoukankan      html  css  js  c++  java
  • python学习——二叉树遍历

    import os,sys

    class node:
    def __init__(self,item):
    self.num=item
    self.lchild=None
    self.rchild=None

    class tree:
    def __init__(self):
    self.root=None

    def add(self,ii):
    inode = node(ii)
    if self.root is None:
    self.root=inode
    else:
    p=[self.root]
    iipp=0
    while 1:
    ip=p[iipp]
    #print ip
    iipp=iipp+1
    if ip.lchild is None:
    ip.lchild=inode
    return
    elif ip.rchild is None:
    ip.rchild = inode
    return
    else:
    p.append(ip.lchild)
    p.append(ip.rchild)

    def lorder(self,node1):
    l=[]
    if node1 is not None:
    l.append(node1.num)
    ll= self.lorder(node1.lchild)
    l=l+ll
    #l.append(ll)#带结构
    rl = self.lorder(node1.rchild)
    #l.append(rl)#带结构
    l=l+rl
    return l

    def morder(self,node2):
    m = []
    if node2 is not None:
    lm = self.morder(node2.lchild)
    m = m + lm
    m.append(node2.num)
    rm = self.morder(node2.rchild)
    m = m + rm
    return m

    def rorder(self,node3):
    r = []
    if node3 is not None:
    lr = self.rorder(node3.lchild)
    r = r + lr
    rr = self.rorder(node3.rchild)
    r = r + rr
    r.append(node3.num)
    return r

    if __name__ == '__main__':
    t=tree()
    for i in range(1,10):
    t.add(i)
    print t.lorder(t.root)#先序遍历
    print t.morder(t.root)#中序遍历
    print t.rorder(t.root)#后序遍历
  • 相关阅读:
    m-n的随机整数 包括m n
    获取url参数 hash类型
    js 数组转带空格字符串
    产生n-m的随机数组
    js 判断android、IOS
    判断是否微信浏览器
    文本左右对齐方式css
    H5微信支付流程
    H5微信授权登录流程
    H5页面 input禁止弹出键盘
  • 原文地址:https://www.cnblogs.com/zhang-study/p/8411108.html
Copyright © 2011-2022 走看看