iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Software Development

闖進Python異世界系列 第 24

[Day 24] 闖進Python異世界 - Insertion in BST

  • 分享至 

  • xImage
  •  

二元搜尋樹的特色就是任意子樹的根節點資料大於左子樹的資料,且小於左子樹的資料。

因此我們在建構二元搜尋樹的時候也要依照他的邏輯!

為求方便,我們就使用 Hackerrank 上的題目:Binary Search Tree : Insertion

如果通過他的測試就代表你的函式實作正確。


實作函式

由於這個函式是定義在 class Node 之下,所以在呼叫類別成員、類別方法前,都要加上 self 關鍵字

def insert(self, val):
    if self.root is None:
        self.root = Node(val)
        return self.root
    else:
        self.helper(self.root, val)
        return self.root
            
def helper(self, root, val):
    if root.info > val:
        if root.left is None:
            root.left = Node(val)
            return self.root
        else:
            return self.helper(root.left, val);
    else:
        if root.right is None:
            root.right = Node(val);
            return self.root
        else:
            return self.helper(root.right, val);

上一篇
[Day 23] 闖進Python異世界 - Tree Class
下一篇
[Day 25] 闖進Python異世界 - Height of BST
系列文
闖進Python異世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言