二叉树学习(二):二叉树的基本操作及代码实现
来源:互联网 发布:淘宝开虚拟网店流程 编辑:程序博客网 时间:2024/06/05 02:09
1、二叉树基本操作
二叉树基本操作一般包括如下:
class BinaryTree<T>{ private Node<T> root; public BinaryTree(){};//创建一棵空二叉树 public BinryTree(T x){} //创建一棵以数据元素x为根结点的二叉树 /*在当前二叉树的parent结点插入一个新的左子结点,若已存在左子树,则将该左子树变成新左子结点的左孩子树*/ public boolean insertLeft(T x,Node<T> parent){} /*在当前二叉树的parent结点插入一个新的右子结点,若已存在右子树,则将该右子树变成新右子结点的右孩子树*/ public boolean insertLRight(T x,Node<T> parent){} //删除在当前的二叉树的parent结点中的左子树 public boolean deleteLeft(Node<T> parent){} //删除在当前的二叉树的parent结点中的右子树 public boolean deleteLeft(Node<T> parent){} //在当前二叉树中查找数据x public boolean search(T x){} //按某种方式遍历当前二叉树全部结点 public void traversal(int i){} //求当前二叉树的高度 public int getHight(Node<T> parent){}}
2、算法的实现
2.1建立一棵空二叉树
public BinaryTree(){ this.root = new Node<T>();//创建根结点,该结点数据域为空}
2.2 生成一棵二叉树
public BinaryTree(T x){ this.root = new Node<T>(x);//创建一棵以数据x为根结点的二叉树}
2.3 向二叉树插入一个左孩子结点
/*在当前二叉树的parent结点插入一个新的左子结点,若已存在左子树,则将该左子树变成新左子结点的左孩子树*/public boolean insertLeft(T x,Node<T> parent){ if(parent==null) return false; Node<T> p = new Node<T> x;//创建一个新结点 if(parent.lChild==null) parent.lChild = p; else { //先将父结点原来的左子树设置为新结点的左子树 p.lChild = parent.lChild; //再将新结点设置到父结点的左孩子结点 parent.lChild = p; } return true;}//注意,要实现本操作,必须先确定插入位置,即parent结点
2.4 向二叉树插入一个右孩子结点
实现同2.3
2.5删除二叉树的左子树
//删除当前二叉树parent结点的左子树public boolean deleteLeft(Node<T> parent){ if(parent==null) return false; else { parent.lChild = null; return true; }}
2.6删除二叉树的右子树
实现同2.5
0 0
- 二叉树学习(二):二叉树的基本操作及代码实现
- 二叉树的基本操作(二)
- 二叉树的基本操作(二)
- 二叉树的基本操作 (二叉链表实现)
- 二叉树实现及基本操作
- 二叉搜索树的基本操作(C代码实现)
- 二叉树的基本操作 C++代码实现
- 二叉树的基本操作代码
- 二叉树的基本操作及遍历
- 二叉树的创建及基本操作。
- 二叉树的定义及基本操作
- c++学习笔记—二叉树基本操作的实现
- 二叉树基本操作的程序实现
- Java实现二叉树的基本操作
- 二叉树基本操作的程序实现
- 二叉树基本操作的程序实现
- 二叉树的基本操作-递归实现
- 二叉树的基本操作实现
- 通过BitmapFactory.decodeByteArray把byte[]转成Bitmap出现的OOM的解决方法
- dot net npoi
- iOS CGRectInset,CGRectOffset
- 网页下载器
- C++的黑科技(深入探索C++对象模型)
- 二叉树学习(二):二叉树的基本操作及代码实现
- 多线程
- C 基础练习
- USACO 2.3Money Systems(简单DP)
- 模仿常用框架Builder初始化数据,如何优雅地装逼
- Android XPosed框架 hook 中的IllegalAccessError: Class ref in pre-verified class resolved to unexpected
- '2.587426955E9' in column '2' is outside valid range for the datatype INTEGER.
- LSDyna在土木工程静力问题中的应用
- GNU m4