class BinaryTree { treenode head; class treenode { private int val; public treenode left; public treenode right; public treenode(int val) { this.val=val; left=null; right=null; } } public void add(int n) //构造树或插入值 { treenode node=new treenode(n); if(isempty()) head=node; else insert(node); } private void insert(treenode node) //向树中插入值 { treenode cur=head; while(cur!=null) { if(node.val<=cur.val) { if(cur.left==null) cur.left=node; cur=cur.left; } else if(node.right==null) cur.right=node; cur=cur.right; } } public void delete(int n) { } public treenode find(int n) //找到n所在的节点 { treenode tmp=head; while(tmp!=null) { if(tmp.val>n) tmp=tmp.left; else if(tmp.val<n) tmp=tmp.right; else return tmp; } return null; } public boolean isleaf(int n) //是否为空树 { treenode tmp=find(n); if(tmp!=null&&tmp!=head&&tmp.left==null&&tmp.right==null) return true; return false; } public treenode parent(int n) //父节点 { LinkenList<treenode> l=new LinkenList<treenode>(); treenode cur; treenode node=find(n); l.offer(head); while(l.size()>0) { cur=l.poll(); if(cur.left==node||cur.right==node) return cur; if(cur.left!=null) l.offer(cur.left) if(cur.right!=null l.offer(cur.right) } return null; } public int max(treenode node) //最大节点值 { treenode tmp=node; if(tmp==null) return -1; while(tmp!=null) tmp=tmp.right; return tmp.val; } public int min(treenode node) //最小节点值 { treenode tmp=node; if(tmp==null) return -1; while(tmp!=null) tmp=tmp.left; return tmp.val; } public void deleteleaf(int n) //删除叶子节点 { treenode node=find(n); treenode parent=parent(n); if(parent.left==node) parent.left==null; else parent.right==null; } }
二叉树
原创zhenzhuangde 博主文章分类:笔记 总结 ©著作权
©著作权归作者所有:来自51CTO博客作者zhenzhuangde的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【数据结构】二叉树的存储结构
【数据结构】第五章——树与二叉树详细介绍二叉树的存储结构……
二叉树 数据结构 C语言 -
【二叉树】合并二叉树
题目给定两个二叉树想象当你将它们中的一个 覆盖 到另一个上时两个二叉树的一些节点便
swift 深度优先 算法 ios objective-c -
对称二叉树【二叉树】
时间复杂度:空间复杂度:
python 复杂度 Code 空间复杂度 -
【二叉树】重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果请构建该二叉树并返回其根节点假设
swift 算法 二叉树 中序遍历 子树 -
【二叉树】验证二叉树
题目二叉树上有 n 个节点,按从 0 到 n - 1 编号其中节点 i 的两个子节点分别是 leftChild[i]
swift 二叉树 算法 子节点 数组 -
【二叉树】平衡二叉树
题目给你一个二叉树判断它是否是高度平衡的二叉树一棵高度平衡二叉树定义为:一
swift 算法 开发语言 ios objective-c -
【二叉树】输出二叉树
题目在一个 m*n 的二维字符串数组中输出二叉树行数 m 应当等于给定二叉树的 高度列数 n 应当总是 奇数根节点 的值(以字符串格式
swift 算法 深度优先 二叉树 子树 -
二叉树(三)——线索二叉树
利用二叉链表中空的指针域指出结点在某种遍历序列中的直接前驱或直接后继,指向前驱和后继的
线索二叉树 二叉树 数据结构和算法 中序序列 结点