二叉排序树的建立与查找

来源:互联网 发布:软件项目关键技术指标 编辑:程序博客网 时间:2024/04/30 14:22

二叉排序树(BST)又称二叉查找树,亦称二叉搜索树,其中序遍历的结果为递增的;

定义(空树也是二叉排序树)

(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;

(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;

(3)左,右子树也分别为二叉排序树;

建立二叉排序树的算法

struct node{int a;node *lc;node *rc;};void BST(node *&t,int x)//二叉排序树的中序遍历的结果为递增数列{if(t==NULL){t = (node *)malloc(sizeof(node));t->lc = t->rc = NULL;t->a = x;}else{if(x<=t->a)//这里的等于归哪边都可以{BST(t->lc,x);}else{BST(t->rc,x);}}}


查找算法

int find(node *t,int x){if(t!=NULL){flag++;if(x==t->a)return flag;else if(x<t->a)find(t->lc,x);elsefind(t->rc,x);}elsereturn -1;}


0 0
原创粉丝点击