国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 16:24:28
字體:
來源:轉載
供稿:網(wǎng)友

問題

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

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

空集

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

創(chuàng)建二叉樹:

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

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

Python代碼示例

# !/usr/bin/env python/144573.html">python# -*-encoding: utf-8-*-# author:LiYanwei# version:0.1class 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é)點間的關系A.left = BA.right = CB.right = Dprint 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代碼示例

# !/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)

總結

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


注:相關教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桐庐县| 民丰县| 台江县| 晋城| 漯河市| 黄龙县| 玉林市| 尉犁县| 桓台县| 开远市| 阿尔山市| 龙泉市| 同仁县| 利津县| 凌云县| 庆安县| 修水县| 辽阳县| 中阳县| 工布江达县| 太白县| 连云港市| 正蓝旗| 阿瓦提县| 丰原市| 万宁市| 玉田县| 东平县| 忻城县| 乌鲁木齐县| 宁德市| 博兴县| 丰都县| 贺州市| 茌平县| 云林县| 获嘉县| 黔西县| 太仆寺旗| 德兴市| 普兰县|