binary tree
下記のwikiのリンクの図があったときに、
https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%9C%A8#:~:text=%E4%BA%8C%E5%88%86%E6%9C%A8%EF%BC%88binary%20tree%3B%20%E4%BA%8C,%E3%81%A7%E3%81%82%E3%82%8B%E3%82%82%E3%81%AE%E3%82%92%E3%81%84%E3%81%86%E3%80%82
・root: 一番上の点=②
・node:点=②〜11の全ての点
・link:つないでいる線=②〜11を繋ぐ全ての線
を指している。
#traverseについて
#下記のような関数について (Postorder)
#getLeftChild=左側の点に移動
#getRightChild=右側の点に移動
#getRootVal=一番上の点に移動
#つまり、下記の場合、右をとって、左をとってから、真ん中をとる。
#wikiでいうと、2-5-11-6-7-4-9-5-2
def traverse(tree):
if tree:
traverse(tree.getLeftChild())
traverse(tree.getRightChild())
print(tree.getRootVal())
sorted BSTについて
averageのruntimeはO(logn)
worstのruntimeはO(n)
worst caseは、すべてのchild nodeが1つずつしかついていない場合
BSTにおいては、常に左が小さく右が大きくならなくてはいけない。