美文网首页
树、二叉树、二叉搜索树的特性与实现

树、二叉树、二叉搜索树的特性与实现

作者: alex很累 | 来源:发表于2022-06-06 21:00 被阅读0次

一、树

定义

  • 树是由根节点和若干颗子树构成的;
  • 一棵树中的任意两个结点有且仅有唯一的一条路径连通;
  • 一棵树如果有 n 个结点,那么它一定恰好有 n-1 条边;
  • 一棵树不包含回路(树是特殊的图,树没有环)。

示例

树,二叉树

二、二叉树

定义

二叉树(Binary tree)是每个节点最多只有两个分支(即不存在分支度大于 2 的节点)的树结构。

JAVA实现

public class TreeNode {
    public int val;
    public TreeNode left, right;
    public TreeNode(int val) {
        this.val = val;
        this.left = null;
        this.right = null;
    }
}

二叉树的遍历(用递归实现)

前序遍历:根节点-左节点-右节点

public void preOrder(TreeNode root) {
    if (root == null) {
        return;
    }
    System.out.println(root.val);
    preOrder(root.left);
    preOrder(root.right);
}

中序遍历:左节点-根节点-右节点

public void inOrder(TreeNode root) {
    if (root == null) {
        return;
    }
    inOrder(root.left);
    System.out.println(root.val);
    inOrder(root.right);
}

后序遍历:左节点-右节点-根节点

public void postOrder(TreeNode root) {
    if (root == null) {
        return;
    }
    inOrder(root.left);
    inOrder(root.right);
    System.out.println(root.val);
}

三、二叉搜索树

定义

二叉搜索树,又称有序二叉树、排序二叉树,是具有下列性质的二叉树:

  • 若任意结点的左子树不空,则左子树上所有结点的值均不大于它的根结点的值。
  • 若任意结点的右子树不空,则右子树上所有结点的值均不小于它的根结点的值。
  • 任意结点的左、右子树也分别为二叉搜索树;
    根据性质可知,中序遍历二叉搜索树即可得到升序排列的数据。

示例

二叉搜索树
可以在这个网址尝试进行一些二叉搜索树的操作。

四、lintcode上的一些题目

94.二叉树的中序遍历

144. 二叉树的前序遍历

145. 二叉树的后序遍历

这三道题没什么难的,看一下上文二叉树的遍历即可。

589. N 叉树的前序遍历

这道题也很简单,只是简单拓展一下。

429. N 叉树的层序遍历

这道题也很简单,遍历一下就结束啦。

相关文章

  • Week-2:树、二叉树、二叉搜索树

    树、二叉树、二叉搜索树的实现和特性 参考链接 二叉搜索树 Demo[https://visualgo.net/zh...

  • Avl平衡树--C语言实现

    Avl 平衡树 实现记录 Avl平衡二叉树和搜索二叉树基本实现原理相同,在搜索二叉树的基础上添加树平衡的操作--单...

  • 红黑树

    一、二叉搜索树 二叉搜索树,也称有序二叉树,排序二叉树,具有以下特性: 1、是一棵二叉树 2、若任意节点的左子树不...

  • 二叉树基础

    二叉树的分类 完全二叉树与满二叉树 二叉搜索树BST 平衡二叉搜索树BBST因为二叉搜索树有可能退化为链表,降低查...

  • Swift实现搜索二叉树(BST)

    Swift实现搜索二叉树(BST) 二叉搜索树(BST)关于索索二叉树这里有详细的教程,下面我们主要针对二叉树的一...

  • 数据结构3:二叉树详细介绍

    9.二叉树 9.1 二叉树的定义 9.2 满二叉树与完全二叉树 9.3 二叉查找树(也叫二叉搜索树,二...

  • 树,二叉树,搜索树

    树,二叉树,搜索树 资料 二叉搜索树 Demo 树的遍历 Demo 题目 ◎ 二叉树的中序遍历 ◎ 二叉树...

  • 前端学数据结构与算法(六):二叉树的四种遍历方式及其应用

    前言 上一章我们从0到1的实现了一颗二叉搜索树,以及理解了二叉搜索树的特性与基本操作,这一章介绍关于二叉树的更多操...

  • 排序算法(五):堆排序

    从二叉搜索树和平衡二叉树的介绍中,可以发现二叉树这种结构具有一个很好的特性,当有序的二叉树构造完成之后,更改树中节...

  • 剑指Offer二

    27.二叉搜索树与双向链表 将二叉搜索树转换成一个排序的双链表,利用二叉搜索树的特性,非空二叉树的左子树上的节点的...

网友评论

      本文标题:树、二叉树、二叉搜索树的特性与实现

      本文链接:https://www.haomeiwen.com/subject/elcdmrtx.html