面试基础知识整理 —— 树

来源:互联网 发布:sql server 字符串主键 编辑:程序博客网 时间:2024/06/06 02:56

1. 定义

树是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:

  • 每个节点有零个或多个子节点;
  • 没有父节点的节点称为根节点;
  • 每一个非根节点有且只有一个父节点;
  • 除了根节点外,每个子节点可以分为多个不相交的子树;

摘自维基百科 树

2. 二叉树

所有元素最多有两个节点

package tree;/** * Created by song on 4/8/17. * * 二叉树节点 */public class BinaryNode<T extends Comparable> {    private T value;    private BinaryNode<T> left;    private BinaryNode<T> right;    public BinaryNode() {        /*do nothing*/    }    public BinaryNode(T value) {        this(value, null, null);    }    public BinaryNode(T value, BinaryNode<T> left, BinaryNode<T> right) {        this.value = value;        this.left = left;        this.right = right;    }    public T getValue() {        return value;    }    public void setValue(T value) {        this.value = value;    }    public BinaryNode<T> getLeft() {        return left;    }    public void setLeft(BinaryNode<T> left) {        this.left = left;    }    public BinaryNode<T> getRight() {        return right;    }    public void setRight(BinaryNode<T> right) {        this.right = right;    }}

3. 其他树

二叉搜索树

0 0
原创粉丝点击