数据结构与算法(十)

来源:互联网 发布:淘宝内衣代理 编辑:程序博客网 时间:2024/05/19 18:43

二叉树的基本概念


一. 树


1. 为什么要使用树

有序数组插入数据项和删除数据项太慢;

链表查找数据太慢;

在树中能非常快速的查找、插入和删除数据项。


2. 树的结构



二. 树的基本概念


1. 路径

顺着连接节点的边从一个节点到另一个节点,所经过的节点顺序排列称为路径。


2. 根

树最上面的节点称为根结点。一棵树只有一个根。而且从根到任何结点有且只有一条路径。


3. 父结点

每个结点都有一条边向上连接到另一个结点,这个结点就称为是下面这个结点的父结点。


4. 子结点

每个结点都有一条边向下连接到另一个结点,下面的结点就是该节点的子结点。


5. 叶子结点

没有子结点的结点称为叶子结点。


6. 子树

每个结点都可以作为一个子树的跟,它和它所有的子结点以及子结点的子结点组合在一起就是一个子树。


7.  访问

访问一个结点是为了在这个结点上执行一些操作,如查看结点的数据项。但是如果仅仅是经过一个结点,不认为是访问了这个结点。


8. 层

一个结点的层数是指从根开始到这个结点有多少代。


三. 二叉树

树的每个结点最多只能有两个子结点的树称为二叉树。


二叉树结点

/* * 二叉树结点 */public class Node {//数据项private long data;//左子结点private Node leftChild;//右子结点private Node rightChild;/* * 构造函数 */public Node(long data){this.data=data;}}

二叉树类

/* * 二叉树类 *//* * 为什么要使用树 *  * 有序数组插入数据项和删除数据项太慢 * 链表查找数据太慢 * 在树中能非常快速的查找数据项、删除数据项和插入数据项 */public class Tree {//根结点private Node root;/* * 插入结点 */public void insert(long value){}/* * 查找结点 */public void find(long value){}/* * 删除结点 */public void delete(long value){}}


0 0
原创粉丝点击