算法二叉排序树PPT学习教案
在计算机科学中,二叉排序树(Binary Search Tree,BST)是一种重要的数据结构,常用于实现动态查找表。下面是对二叉排序树的详细介绍:
动态查找表
动态查找表是一种特殊的数据结构,它的表结构是在查找过程中动态生成的。当对给定关键字值key进行查找时,如果表中有具有此值的记录,则查找成功返回,否则插入此关键字的新记录。
二叉排序树的定义
二叉排序树是一种特殊的二叉树,它可以为空树,或者满足以下性质的二叉树:
* 若左子树不空,则左子树上所有结点的关键字都小于根结点的关键字。
* 若右子树不空,则右子树上所有结点的关键字都大于根结点的关键字。
* 左子树和右子树分别是二叉排序树。
二叉排序树的存储结构
二叉排序树的存储结构通常采用二叉链表,结点结构包括左子女指针、右子女指针和数据域。
二叉排序树的查找算法
二叉排序树的查找算法可以分为三步:
1. p 指向根结点。
2. p 的关键字与 key 比较,有三种情况:
* p->data.key==key; 查找成功,返回 p,结束。
* p->data.key>key; 到左子树中找,p 指向它左子女。
* p->data.key<key; 到右子树中找,p 指向它右子女。
3. 重复步骤 2 直到 p 为空,查找失败,返回空。
二叉排序树的插入算法
在查找不成功时,需要在二叉排序树中插入新的记录。插入算法可以分为两步:
1. 在根指针 T 所指二叉排序树中递归地查找某关键字等于 key 的数据元素,若查找成功,则返回指向该数据元素结点的指针,否则返回空指针。
2. 如果查找不成功,则在查找路径上访问的最后一个结点处插入新的记录。
二叉排序树的遍历
二叉排序树的遍历可以采用递归或非递归方式,常用的遍历方式有前序遍历、中序遍历和后序遍历。
结论
二叉排序树是一种重要的数据结构,常用于实现动态查找表。它的查找、插入和遍历算法都是二叉排序树的核心内容。