一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python算法之求n個節(jié)點不同二叉樹個數(shù)

Python算法之求n個節(jié)點不同二叉樹個數(shù)

2020-12-14 00:11玩蛇的 Python

本文先向大家分享了建立二叉樹的簡單代碼,其次介紹了Python計算n個節(jié)點不同二叉樹個數(shù)的問題及實現(xiàn)代碼示例,具有一定參考價值,需要的朋友可以了解下。

問題

創(chuàng)建一個二叉樹

二叉樹有限多個節(jié)點的集合,這個集合可能是:

空集

由一個根節(jié)點,和兩棵互不相交的,分別稱作左子樹和右子樹的二叉樹組成

創(chuàng)建二叉樹:

創(chuàng)建節(jié)點

再創(chuàng)建節(jié)點之間的關(guān)系

Python代碼示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# !/usr/bin/env python
# -*-encoding: utf-8-*-
# author:LiYanwei
# version:0.1
class TreeNode(object):
  def __init__ (self, data, left = None, right = None):
    self.data = data
    self.left = left
    self.right = right
  def __str__(self):
    return str(self.data)
# 節(jié)點
A = TreeNode('A')
B = TreeNode('B')
C = TreeNode('C')
D = TreeNode('D')
# 節(jié)點間的關(guān)系
A.left = B
A.right = C
B.right = D
print B.right

問題

求n個節(jié)點不同二叉樹個數(shù)

1個節(jié)點
根節(jié)點1 1種
1種二叉樹

2個節(jié)點
根節(jié)點1 左節(jié)點1 1種(依照1節(jié)點的推斷)
根節(jié)點1 右節(jié)點1 1種(依照1節(jié)點的推斷)
2種二叉樹

3個節(jié)點
根節(jié)點1 左節(jié)點0 右節(jié)點2 2種(依照2節(jié)點的推斷)
根節(jié)點1 左節(jié)點1 右節(jié)點1 1種(依照1節(jié)點的推斷)
根節(jié)點1 左節(jié)點2 右節(jié)點0 2種(依照2節(jié)點的推斷)
5種二叉樹

4個節(jié)點
根節(jié)點1 左節(jié)點0 右節(jié)點3 5種(依照3節(jié)點的推斷)
根節(jié)點1 左節(jié)點1 右節(jié)點2 2種(依照2節(jié)點的推斷)
根節(jié)點1 左節(jié)點2 右節(jié)點1 2種(依照2節(jié)點的推斷)
根節(jié)點1 左節(jié)點3 右節(jié)點0 5種(依照4上面的推斷)
共14種二叉樹

...

n個節(jié)點

遞歸進行累加

Python代碼示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# !/usr/bin/env python
# -*-encoding: utf-8-*-
# author:LiYanwei
# version:0.1
# 求n個節(jié)點不同二叉樹個數(shù)
def count(n):
  # root : 1
  # left : k
  # right : n - 1- k
  # s = 0
  # if n == 0:
  #   # 空樹
  #   return 1
  s = count.cache.get(n, 0)
  if s:
    return s
  for k in xrange(n):
    s += count(k) * count(n - 1 - k)
  count.cache[n] = s
  return s
# 重復計算優(yōu)化
count.cache = {0 : 1}
print count(100)

總結(jié)

以上就是本文關(guān)于Python算法之求n個節(jié)點不同二叉樹個數(shù)的全部內(nèi)容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://www.cnblogs.com/Py00/p/7726550.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 2021最新国产成人精品视频 | 四虎在线视频免费观看视频 | 狠狠做五月深爱婷婷天天综合 | 四虎永久网址在线观看 | 欧美一级专区免费大片俄罗斯 | 午夜一区二区免费视频 | 国产第2页| 亚洲国产第一区二区香蕉日日 | 护士柔佳 | 波多野结衣在线观看中文字幕 | 亚洲不卡高清免v无码屋 | 精品无人区一区二区三区 | 妹妹你插的我好爽 | 欧美一级片在线免费观看 | 欧美综合精品一区二区三区 | 日本加勒比在线播放 | 美女黄金大片视频免费看 | 成年看片免费高清观看 | 国产麻豆剧果冻传媒观看免费视频 | 操美女bb | 亚洲精品国产精品麻豆99 | 四虎永久在线精品免费影视 | 亚洲色图欧美图片 | 好大好深受不了了快进来 | 草莓社区 | beeg xxxx日本| 亚洲欧洲日产国码天堂 | 色臀网站| 91污污视频| 好男人社区www影院在线观看 | 亚洲福利视频在线观看 | 国产在线观看福利 | 国产精品青青青高清在线 | 日韩一区视频在线 | 亚洲色图网址 | 成年女人毛片免费观看97 | 国色天香视频完整版 | 国内精品久久久久久久久 | 国产午夜精品一区二区三区不卡 | 欧美精品亚洲精品日韩1818 | 精品国产日韩亚洲一区在线 |