zoukankan      html  css  js  c++  java
  • 数据结构树-二叉树的实现(3)

    使用列表实现二叉树:

    def BinarTree(r):
        return [r,[],[]]
     
    def insertLeft(root,newBrach):
        t=root.pop(1)
        if len(t)>1:
            root.inset(1,[newBrach,t,[]])
        else:
            root.insert(1,[newBrach,[],[]])
        return root
     
    def insertRight(root,newBrach):
        t=root.pop(2)
        if len(t)>1:
            root.insert(2,[newBrach,[],t])
        else:
            root.insert(2,[newBrach,[],[]])
        return root
     
    def getRootVal(root):
        return root[0]
     
    def setRootVal(root,newVal):
        root[0]=newVal
     
    def getLeftChild(root):
        return root[1]
     
    def getRihtChild(root):
        return root[2]
     
    tree=BinarTree('a')
    insertLeft(tree,'b')
    insertRight(tree,'c')
    insertLeft(getLeftChild(tree),'d')
    insertRight(getLeftChild(tree),'e')
    insertLeft(getRihtChild(tree),'f')
    print(tree)
    View Code

    计算二叉树节点的个数

    def count(root):
        if root==[]:
            return 0
        else:
            n1=count(root[1])
            n2=count(root[2])
            n=1+n1+n2
            return n
     
    tree=['a',
            ['b',
                ['d',[],[]],
                ['e',[],[]],
            ],
            ['c',
                ['f',[],[]],
                []
            ]
        ]
    sum=count(tree)
    print(sum)
  • 相关阅读:
    团队作业(七)
    8848小分队:个人最终总结
    团队作业(四)
    参与团队编程的讨论郝一的角度
    团队作业(五)
    团队作业(三)
    团队作业(二)
    团队题目的确立与小组分工
    xJuujMbXeB
    团队作业汇报
  • 原文地址:https://www.cnblogs.com/topass123/p/12653166.html
Copyright © 2011-2022 走看看