0%

二叉搜索树的特点

所谓二叉搜索树(Binary Search Tree),又叫二叉排序树,简单而言就是左子树上所有节点的值均小于根节点的值,而右子树上所有节点的值均大于根节点的值,左小右大,并不是乱序,因此又得名二叉排序树。

二叉搜索树要么是空二叉树,要么具有如下特点:

  • 二叉搜索树中,如果其根节点有左子树,那么左子树上所有节点的值都小于根节点的值;
  • 二叉搜索树中,如果其根节点有右子树,那么右子树上所有节点的值都大小根节点的值;
  • 二叉搜索树的左右子树也要求都是二叉搜索树;

有了二叉搜索树,当你要查找一个值,就不需要遍历整个序列或者说遍历整棵树了,可以根据当前遍历到的节点的值来确定搜索方向,这就好比你要去日本,假设你没有见过世界地图,你不知道该往哪个方向走,只能满地球找一遍才能保证一定能够到达日本;而如果你见过世界地图,你知道日本在中国的东边,你就不会往西走、往南走、往北走。这种思维在搜索中被叫做 “剪枝”,把不必要的分枝剪掉可以提高搜索效率。在二叉搜索树中查找值,每次都会把搜索范围缩小,与二分搜索的思维类似。

Docker

curl -sSL https://get.docker.com/ | sh
# 阿里云
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
# DaoCloud
curl -sSL https://get.daocloud.io/docker | sh

最近可能要重装系统,整理一下电脑上装的软件,方便重装系统后安装各类软件

带*为必装软件,其余可根据需要进行安装