编写算法在二叉排序树上找出任意两个不同节点的最近公共祖先
更新时间:2024-03-18 21:25:01 阅读量: 综合文库 文档下载
源代码:
#include \#include \typedef struct node {
int data;
struct node *lchild,*rchild; }Bit;
Bit *InBitree(Bit *S,Bit *T){ //将数据插入一个二叉排序树中 Bit *p; p=T;
while(1){
if(S->data
else if(S->data
else if(S->data>p->data&&p->rchild==NULL){ p->rchild=S; break; }
else if(S->data>p->data&&p->rchild!=NULL) p=p->rchild; }
return T; }
Bit *SetBitree(){ //创建一个二叉排序树 Bit *T,*S; int a; T=NULL;
printf(\输入数据创建一个二叉排序树,以0结束!\\n\ scanf(\ while(a!=0){
S=(Bit *)malloc(sizeof(Bit)); S->data=a;
S->lchild=S->rchild=NULL; if(T==NULL) T=S; else
T=InBitree(S,T); scanf(\ }
return T;
}
Bit *SearchBitree(Bit *T,int a,int b){ //查找两结点的最近公共祖先结点 Bit *p,*q; p=q=T;
while(p!=NULL){
if(a
p=p->lchild; }
else if(a>p->data&&b>p->data){ q=p;
p=p->rchild; }
else if((a
else if(a==p->data||b==p->data) return q; } }
void main(){ Bit *T,*Q; int x1,x2; T=SetBitree(); if(T==NULL)
printf(\二叉排序树创建失败,请从新创建!\\n\ else {
printf(\请输入两个结点:\\n\ scanf(\ Q=SearchBitree(T,x1,x2);
printf(\结点%d与结点%d的最近公共祖先结点是%d!\\n\} }
正在阅读:
编写算法在二叉排序树上找出任意两个不同节点的最近公共祖先03-18
团员自我评价个人小结03-18
小学生作文我的愿望03-31
多姿多彩的童年作文600字07-06
拓维信息:股票期权激励计划(摘要)(修订稿) 2010-09-1005-24
OFDM误码率性能分析与研究 - 图文09-30
大学物理课后题答案1212-10
广东省水电安装工程综合定额05-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 节点
- 祖先
- 树上
- 算法
- 找出
- 编写
- 排序
- 任意
- 不同
- 两个
- 公共
- 最近
- 木兰诗课堂实录
- 粉笔学霸笔记言语理解与表达
- 作文素材之家风家教(1)
- 房地产微信营销
- XX库存管理系统
- 对小学花样跳绳教学方法和评价的一点做法
- 初一生物 复习资料(主要知识点归纳)
- 2010年个人年终总结,2010年终总结范文,2010年部队年终总结,20
- (Siemens)西门子贴片机培训教材分析解读 - 图文
- 泰山版品德与社会六年级下册第八课练习题
- 国培学习总结6篇完美版
- 留守儿童之家工作信息报送制度
- 团员自我评价个人小结
- 新世纪大学英语综合教程5课后题答案完整版
- 人教版2013修订七年级上册语文每篇课文的读一读写一写
- 读书与做人
- 2009文殊坊新春大庙会系列活动
- 房地产基础知识考试试题 - 图文
- 英语六级词汇
- PHP程序设计复习题