天天看點

二叉查找樹:Python實作

二叉查找樹,英文Binary Search Tree,也叫二叉排序樹,是一種基本的資料結構,簡稱BST

它支援多種動态集合操作,包括查找(find),最小值(minimum),最大值(maximum),後繼(successor),前驅(predecessor),插入(insert),删除(delete),以及中序周遊等。它既可以用作字典,也可以用作優先隊列。

BST不是穩定的樹,極端情況下會退化為線性結構,但平均期望上,insert,delete操作可以為O(lg n),樹的期望高度為O(lg n)。

參考了《算法導論》等書,寫出了具有insert,delete,find功能的BST,如果有認為不正确的地方歡迎拍磚。