一、什么是二叉树

 

1. 什么是树。

计算机科学里面的树本质是一个树状图。树首先是一个有向无环图,由根节点指向子结点。但是不严格的说,我们也研究无向树。所谓无向树就是将有向树的所有边看成无向边形成的树状图。树是一种递归的数据结构,所以我们研究树也是按照递归的方式去研究的。

 

2.什么是二叉树。

我们给出二叉树的递归定义如下:

(1)空树是一个二叉树。

(2)单个节点是一个二叉树。

(3)如果一棵树中,以它的左右子节点为根形成的子树都是二叉树,那么这棵树本身也是二叉树。

 

二、BST

1.什么是二叉排序树。

二叉排序树是一种二叉树,它满足树的中序遍历是有序的。

 

2.BSTBinary Search Tree)。

二叉查找树是一种最普通的二叉排序树,一般称作BST,也称为B-树。在这棵树中,满足在任意一个子树中,都满足左子树 < 根节点 < 右子树,即该树的中序遍历满足从小到大排序的结果。

 

3.如何构造一个二叉排序树?

很显然,要想构造一个BST,就必须在插入节点时,满足下面的原则:

(1)如果节点为空,则直接插入到该节点。

(2)如果节点不为空,且要插入的值小于等于当前节点的值,那么则将该节点插入到左子树当中。

(3)如果节点不为空,且要插入的值大于当前节点的值,那么则将该节点插入到右子树当中。

 

4.利用BST的性质对一个数组进行剃重。

由于BST有二叉排序树的性质,我们可以利用这样的性质对一个待定数组进行剃重。原理很简单,只需要在插入的时候如果已经发现了相等的节点的话,那么则不进行插入即可。也就是说,只有该树没有的节点,我们才进行相应的插入操作。

 

 

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式