【流程图说明】
下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data, left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。
【算法说明】
【流程图】
将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:
![](https://img.ixiawen.com/uploadfile/2018/0408/20180408110651228.gif)
typedef struct node
int data;
struct node * left;
struct node * right;
NODE;
【算法】
NODE * SearchSortTree(NODE * tree, int e)
if(tree!=NULL)
if(tree->data<e)
(4) ; //小于查找左子树
else if(tree->data<e)
(5) ; //大于查找左子树
else return tree;
return tree;