二叉树的定义
在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒。
与普通树不同,普通树的节点个数至少为1,而二叉树的节点个数可以为0;普通树节点的最大分支度没有限制,而二叉树节点的最大分支度为2;普通树的节点无左、右次序之分,而二叉树的节点有左、右次序之分。
二叉树通常作为数据结构应用,典型用法是对节点定义一个标记函数,将一些值与每个节点相关系。这样标记的二叉树就可以实现二叉搜索树和二叉堆,并应用于高效率的搜索和排序。
遍历二叉查找树
在二叉查找树中,要执行 insert() 方法进行数据的插入。
遍历二叉查找树的方法有:中序,前序,后序
遍历 | 定义 | 用途 |
---|---|---|
中序 | 按照节点上的键值,以升序访问BST上的所有节点(左-根-右) | 可用于复制一颗二叉树 |
前序 | 先访问根节点,然后以同样方式访问左子树和右子树(根-左-右) | 用于排序 |
后序 | 先访问叶子节点,从左子树到右子树,再到根节点(左-右-根) | 可以用在文件系统里 |
二叉查找树的构造函数(javascript)如下:
1 | function Node (data, left, right) { |
验证:
1 | var tree = new BinaryTree(); |
生成的二叉树如图: