二叉排序树的创建,遍历和删除
Binary Sort/Search Tree 为什么会有它 数组 未排序:直接在队尾添加,速度快;查找速度慢。 排序:二分查找,查找速度快;添加新数据,需要找到插入位置移动后面的数组,速度慢 链表 添加快,查找慢; 简介 BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。 特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点 比如针对前面的数据 (7,3, 10, 12, 5, 1, 9) ,对应的二叉排序树为: 创建二叉排序树 一个数组创建成对应的二叉排序树,并使用中序遍历二叉排序树,比如: 数组为 Array(7, 3, 10, 12, 5, 1, 9) ,创建成对应的二叉排序树。 创建思路: 插入一个节点 如果该节点的值小于根节点的值,此时需要判断根节点的左孩子是否为空,为空则插入该节点;不为空,则以左孩子为当前节点,递归进行添加 如果该节点的值大于根节点的值,此时需要判断根节点的右孩子是否为空,为空则插入该节点;不为空,则以右孩子为当前节点,递归进行添加 遍历思路:(中序)infixOrder 如果当前节点的左孩子不为空,就继续遍历直至为空; 先输出当前节点的值; 如果当先节点的右孩子不为空,就继续遍历直至为空。 删除思路: 分三种情况: