今天就跟大家聊聊有关如何分析python中二叉搜索树的 AVL树,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
二分搜索树 递归实现
public void add(E e){ root = add(root,e); } /** * 二分搜索树插入元素 递归实现 */ private Node add(Node node ,E e){ if (node==null){ size++; return new Node(e); } if (e.compareTo(node.data)<0){ node.left = add(node.left,e); }else if (e.compareTo(node.data)>0){ node.right = add(node.right,e); } return node; }
二分搜索树 查找递归实现
public boolean contains(E e){ return contains(root, e); } private boolean contains(Node node,E e){ if (node==null){ return false; }if (e.compareTo(node.data)==0){ return true; }else if(e.compareTo(node.data)<0){ return contains(node.left,e); }else { return contains(node.right,e); } }
二叉搜索树一定程度上可以提高搜索效率,但是当原序列有序时,例如序列 A = {1,2,3,4,5,6},构造二叉搜索树如图 1.1。依据此序列构造的二叉搜索树为右斜树,同时二叉树退化成单链表,搜索效率降低为 O(n)。
二叉搜索树的查找效率取决于树的高度,因此保持树的高度最小,即可保证树的查找效率。
平衡二叉查找树:简称平衡二叉树。由前苏联的数学家 Adelse-Velskil 和 Landis 在 1962 年提出的高度平衡的二叉树,根据科学家的英文名也称为 AVL 树。它具有如下几个性质:
可以是空树。
假如不是空树,任何一个节点的左子树与右子树都是平衡二叉树,并且高度之差的绝对值不超过 1。
看完上述内容,你们对如何分析python中二叉搜索树的 AVL树有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。