理论知识
![](https://img-blog.csdnimg.cn/20200820110851365.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkxNTIyNg==,size_16,color_FFFFFF,t_70#pic_center)
二叉搜索树:
根节点的值大于左儿子,但是小于右儿子。同样,该根节点的左右子树也满足这个特点。
创建二叉搜索树,从一棵空树开始。
如上图,输入节点 ‘5’,因为开始树为空,所以就是根节点。
输入节点 ‘3’,树不为空,3<5,所以是根节点的左子树。
以此类推…
C代码
创建搜索二叉树采用 递归 的思想:
比如我们现在的树是 ‘5’ 和 ‘3’ 构成的树,‘3’ 是 ‘5’ 的左儿子。
插入 ‘2’ 时,我们找 ‘5’ 的左儿子,发现比‘3’也小,那么继续找 ‘3’ 的左儿子,左儿子是一个空树,所以创建节点,然后原路返回,最后返回这个树。
#include <stdio.h>
#include <stdlib.h>
typedef int DataType;
typedef struct Node *BinTree;
typedef BinTree TreeLink;
typedef struct Node TreeNode;
struct Node