post-image

配列・リストを自己実装


  • バイナリーツリー
  • 前順走査…自分の値、左分木、右分木
  • 間順走査…左分木、自分の値、右分木
  • 後順走査…左分木、右分木、自分の値

バイナリーツリー

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

Back to blog

あなたのひらめきをかたちに

どうやって作るのか想像がつかなければ、一緒に作り上げましょう.

お話をうかがさせてください