求二叉树T中结点a和b的最近共同祖先
来源:互联网 发布:国外天气预报软件 编辑:程序博客网 时间:2024/06/06 19:54
也不知道方法好不好 先贴在这
/**********【题目】试编写算法,求二叉树T中结点a和b的最近共同祖先。二叉链表类型定义:typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild;} BiTNode, *BiTree;可用栈类型Stack的相关定义:typedef struct { BiTNode *ptr; // 二叉树结点的指针类型 int tag; // 0..1} SElemType; // 栈的元素类型Status InitStack(Stack &S); Status StackEmpty(Stack S); int StackLength(SqStack S);Status Push(Stack &S, SElemType e);Status Pop(Stack &S, SElemType &e); Status GetTop(Stack S, SElemType &e); **********/Status getPathStack(Stack &s,BiTree t,TElemType v){ if(t == NULL) return ERROR; SElemType e; e.ptr = t; if (t->data == v) { Push(s,e); return OK; } if (OK == getPathStack(s,t->lchild,v)) { Push(s,e); return OK; } if (OK == getPathStack(s,t->rchild,v)) { Push(s,e); return OK; } Pop(s,e); return ERROR;} BiTree CommAncestor(BiTree T, TElemType a, TElemType b)/* 求二叉树T中结点a和b的最近共同祖先 */{ if (T == NULL) return NULL; Stack sa,sb; InitStack(sa); InitStack(sb); if (ERROR == getPathStack(sa,T,a)) return NULL; if (ERROR == getPathStack(sb,T,b)) return NULL; SElemType E1,E2,e1,e2; Pop(sa,E1); Pop(sb,E2); while (!StackEmpty(sa) && !StackEmpty(sb)) { e1 = E1; e2 = E2; if (ERROR == Pop(sa,E1) || ERROR == Pop(sb,E2) || E1.ptr->data != E2.ptr->data || E1.ptr->data == a || E2.ptr->data == b) return e1.ptr; } return NULL;}
0 0
- 求二叉树T中结点a和b的最近共同祖先
- 求二叉树两结点最近的共同祖先结点
- 求二叉树中任意两结点的最近共同祖先的算法及其证明
- 求二叉树中两个结点的最近公共祖先
- 019写程序在一棵二叉树中找到两个结点的最近共同祖先(keep it up)
- 求二叉树中两个节点的最近公共祖先结点
- 【数据结构】求二叉树中两个结点最近的公共祖先
- 二叉树两个结点的第一个共同祖先
- 求二叉树中2个节点的最近祖先
- 求二叉树中两个节点的最近公共祖先
- 求二叉树中两个节点的最近公共祖先
- 求二叉树中两个节点的最近公共祖先
- 求二叉树中两个节点的最近公共祖先
- 求二叉树中两个节点的最近公共祖先
- 寻找最近共同祖先结点
- 二叉树中两个结点的最近公共祖先(Lowest Common Ancestor of a Binary Tree)
- 二叉树最近共同祖先问题
- 二叉树------寻找二叉树中两个结点的最近公共祖先
- Xcode修改权限
- Android 进程和线程 --多进程
- 手机mipi数据传输
- openjudge charm bracelet
- iOS 开发笔记和技巧总结 (二)
- 求二叉树T中结点a和b的最近共同祖先
- DB2错误代码大全
- 二维码
- linux sqlite3 数据库查看工具
- 新技能get:在任意目录执行NDK编译
- Linux-CenterOS在线yum 安装MySql
- iOS之保存图片到手机相册中
- 初识Android Project Butter: 黄油项目,使动画更加的平滑、流畅
- MySQL-MMM实现MySQL高可用