二叉搜索树,百度百科是这样定义的:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
可以总结出三条性质:
1、非空左子树的所有键值小于根节点的键值。
2、非空右子树的所有键值大于根节点的键值。
3、左右子树都是二叉搜索树。
他的遍历有三种形式:先序遍历、中序遍历、后序遍历。
1、先序遍历:根节点---》左子树----》右子树
首先访问根节点,然后遍历左子树,最后右子树。并且自遍历左右子树时,仍然先访问根节点,在遍历左子树,最后遍历右子树。
![93bb7baaa65aec48d70435fbae61418e.png](https://img-blog.csdnimg.cn/img_convert/93bb7baaa65aec48d70435fbae61418e.png)
中序遍历:左子树---》根节点---》右子树
先遍历左子树,然后访问根节点,最后遍历右子树。并且在遍历左右子树时,仍然是先遍历左子树,然后访问根节点,最后遍历右子树。
![337e742ba772b1878b7dd05ca7fbc5f0.png](https://img-blog.csdnimg.cn/img_convert/337e742ba772b1878b7dd05ca7fbc5f0.png)
后序遍历:左子树---》右子树---》根节点
先遍历左子树,然后遍历右子树,最后访问根节点。并且在遍历左右子树时,仍然是先遍历左子树,然后遍历右子树,最后访问根节点
![b914b616e88d5823a673f596d30dc913.png](https://img-blog.csdnimg.cn/img_convert/b914b616e88d5823a673f596d30dc913.png)
总结一下:先、中、后序的遍历就是看访问根节点的顺序,先访问根节点就是先序,中间访问根节点就是中序,最后访问根节点就是后序。