二叉排序树-BST

title: "二叉排序树-BST"
date: 2015-06-25 09:08:54
categories: 数据结构
tags: 数据结构


为什么要有BST?

  • 查找用顺序存储是最快的,但是顺序存储不适合插入/删除等操作;
  • BST则可以两全齐美,在查找的同时可以进行插入和删除操作,采用链式存储实现;

定义

  • Binary Sort Tree;
  • 又称为二叉查找树;
  • 左子树上所有结点的值均小于根结点的值;
  • 右子树上所有结点的值均大于根结点的值;

特性

  • 二叉排序树中,各结点关键字是 惟一 的;
  • 中序遍历BST为 有序 序列;

操作

  • 插入操作很简单,最终成为度<2的结点的孩子;
  • 删除操作分为两种情况:
    1. 删除结点只有一个孩子,则将它的左/右子树整个移动到删除结点的位置;
    2. 删除结点有两个孩子,则将BST中序遍历该结点的 前驱后继 结点代替删除结点的位置,(或者说是将删除结点左子树中序遍历 最后一个 结点或删除结点右子树中序遍历 第一个结点 代替删除结点的位置);
BST
  • 上图:无序串 BFXDYAC可以存储在数据库或文件中 存储,我们在写程序的时候,将其取出,然后将其构造为BST 内存,最后就可以对BST进行操作 实际操作

讨论板图

taolun-BST

你可能感兴趣的:(二叉排序树-BST)