【流程图说明】 下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data, left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。 【算法说明】 【流程图】 将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:
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; }