关于二叉查找树中的某个节点的前趋和后继的算法(Python实现)
来源:互联网 发布:云宫迅音评价知乎 编辑:程序博客网 时间:2024/04/28 17:47
废话不多说,代码如下:
# -*- coding:utf-8 -*-def Tree_Predecessor(x): '''给定一个二叉查找树的节点z,要求找出在中序遍历下它的前趋''' if left[x] != None: return Tree_Maximum(left[x]) y = p[x] while y != None and x == left[y]: x = y y = p[y] return ydef Tree_Maximum(x): '''找出以x节点为根的树中的最大关键字元素''' if right[x] != None: return Tree_Maximum(right[x]) return xdef Tree_Successor(x): '''给定一个二叉树中的节点z,要求找出在中序遍历顺序下它的后继''' if right[x] != None: return Tree_Minimum(right[x]) y = p[x] while y != None and x == right[y]: x = y y = p[y] return ydef Tree_Minimum(x): '''找出以x节点为根的树中的最小关键字元素''' while left[x] != None: return Tree_Minimum(left[x]) return xif __name__ == '__main__': key = [15,6,18,3,7,17,2,4,9,13,20] left = [1,3,5,6,None,None,None,None,None,8,None] right = [2,4,10,7,9,None,None,None,None,None,None] p = [None,0,0,1,1,2,3,3,9,4,2] print key[Tree_Predecessor(9)] #输出key[9]=13的前趋和后继 print key[Tree_Successor(9)]
1 0
- 关于二叉查找树中的某个节点的前趋和后继的算法(Python实现)
- 二叉树中的前趋和后继
- 二叉查找树的后继
- 二叉查找树后继节点和前驱节点查找
- 二叉查找树后继节点和前驱节点查找
- 二叉查找树带父节点指针的创建,销毁,查找,删除,插入,找前驱后继,找最小值最大值(递归和非递归的实现)
- 给出二叉树,将二叉树进行中序线索化,在根据中序线索化二叉树,找出给定节点的前序后继节点,和给出节点的后序后继节点
- 查找线索二叉树的前驱和后继
- 线索二叉树中查找前驱和后继的问题
- 二叉树的遍历 插入 查找 删除 最大值 最小值 前驱 后继节点的查找
- java实现TreeSet,迭代器使用二叉查找树,每个节点有前驱和后继
- 【二叉树】寻找一个二叉树的节点在中序遍历中的后继节点
- 求二叉查找树指定节点后继
- 二叉树前驱后继的查找(这个容易理解)
- 算法导论第12章 二叉查找树中的后继
- 求二叉搜索树任一节点的前驱后继节点
- 在二叉树中找到一个节点的后继节点
- 在二叉树中找到一个节点的后继节点
- DBCS
- 华为s5700——ssh登录配置方法
- Android学习之Drawable(一)
- sizeof
- StringTokenizer类
- 关于二叉查找树中的某个节点的前趋和后继的算法(Python实现)
- Spring基本概念和理论
- java代码实现猜数字游戏
- [运营期间开发]卡顿处理--GPUView
- 第1次上机实验
- Servlet 是否线程安全 看完便知
- 加油
- Android四大组件之一服务
- OSChina AlphaAnimation