配列・リストを自己実装
By on Sep 3, 2019
- バイナリーツリー
- 前順走査…自分の値、左分木、右分木
- 間順走査…左分木、自分の値、右分木
- 後順走査…左分木、右分木、自分の値
バイナリーツリー
class binary_tree():
def __init__(self, v=None):
self.v = v
self.l = None
self.r = None
def insert(self, v):
if self.v is None:
self.v = v
elif v < self.v:
if self.l is None:
self.l = binary_tree(v)
else:
self.l.insert(v)
else:
if self.r is None:
self.r = binary_tree(v)
else:
self.r.insert(v)
def pre_order(self):
print(self.v)
if self.l is not None:
self.l.pre_order()
if self.r is not None:
self.r.pre_order()
def infix_order(self):
if self.l is not None:
self.l.infix_order()
print(self.v)
if self.r is not None:
self.r.infix_order()
def post_order(self):
if self.l is not None:
self.l.post_order()
if self.r is not None:
self.r.post_order()
print(self.v)
def min(self):
n = self
min = self.v
while n.l is not None:
min = n.l.v
n = n.l
return min
def max(self):
n = self
max = self.v
while n.r is not None:
max = n.r.v
n = n.r
return max