二叉搜索树
一、二叉搜索树的特点 二叉搜索树的特点:对于树中的每个节点X,它的左子树中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。 根据这个性质, 对一个二叉树进行中序遍历,如果是单调递增的,则可以说明这个树是二叉搜索树 。 LeetCode题目98:验证二叉搜索树( https://leetcode-cn.com/problems/validate-binary-search-tree/ )就可以对这个二叉树进行中序遍历,然后判断是否单调递增的,如果是单调递增的,说明是二叉搜索树。否则不是二叉搜索树。 二、二叉搜索树的查找 过程:首先和根节点进行比较,如果等于根节点,则返回。如果小于根节点,则在根节点的左子树进行查找。如果大于根节点,则在根节点的右子树进行查找。 1 /* 查找以t为根节点的树中,是否包含x */ 2 Position Find(ElementType x, SearchTree t) 3 { 4 if (t == NULL) { 5 return NULL; 6 } else if (x < t->element) { 7 return Find(x, t->left); 8 } else if (x > t->element) { 9 return Find(x, t->right); 10 } else { 11 return t; 12