标签:二叉查找树
// // main.cpp // 二叉查找树 // // Created by Fangpin on 15/3/30. // Copyright (c) 2015年 FangPin. All rights reserved. // #include <iostream> struct Tree{//树结构 int key; Tree *left,*right,*p; }; // 返回指向树中最大值所在节点 Tree* Tree_max(Tree* rt){ while(rt->right!=nullptr) rt=rt->right; return rt; } //返回树中最小值所在节点 Tree* Tree_min(Tree* rt){ while(rt->left!=nullptr) rt=rt->left; return rt; } //返回节点的直接前驱节点 Tree* next(Tree *rt){ if(rt->right!=nullptr) return Tree_min(rt->right); Tree *x=rt,*y=x->p; while(y!=nullptr && x==y->right){ x=y; y=y->p; } return y; } //返回节点的直接后继节点 Tree* pre(Tree *rt){ if(rt->left!=nullptr) return Tree_max(rt->left); Tree *x=rt,*y=x->p; while(y!=nullptr && y==x->left){ x=y; y=y->p; } return y; }
标签:二叉查找树
原文地址:http://blog.csdn.net/fangpinlei/article/details/44747933