Go 语言实现 二叉查找树。 日常笔记。原文
定义
二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:
若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
任意节点的左、右子树也分别为二叉查找树。
没有键值相等的节点(no duplicate nodes)。
实现
结构体
1 | // 二叉查找树 |
添加一个结点
1 | func (this *Tree) Insert(v int) { |
遍历树
1 | func (this *Tree) Select() { |
查找一个结点
1 | func (this *Tree) Search(v int) *Node{ |
最小结点
1 | func (this *Tree) Min() *Node{ |
最大结点
1 | func (this *Tree) Max() *Node{ |
删除一个结点
1 | func (this *Tree) Delete(v int) { |
1 | func main() { |