查找表是由同一类型的数据元素(或记录)构成的集合。
顺序查找的查找过程为:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功。
有序表的查找
折半查找的查找过程是:先确定待查记录所在的范围(区间),然后逐渐缩小范围。
已知如下11个数据元素的有序表
05 13 19 21 37 56 64 75 80 88 92
查找21
假设指针low和high分别指示待查元素所在范围内的下界和上界,指针mid指示区间的中间位置,即mid等于不大于的整数。在此例中,low和high的初值分别为1和11,即[1,11]为待查范围。
首先令查找范围中间位置的数据元素的关键字mid的值与定值21比较,因为mid的值大于21,说明待查元素若存在,必在区间[low,mid-1]的范围内,则令指针high指向mid-1个元素,求得mid=3
因为mid的值小于21,说明待查元素若存在,必在[mid+1,high]范围内,则令指针low指向mid+1个元素,求得mid的新值为4,因为mid的值和21相等,则查找成功。
二叉排序树和平衡二叉树
二叉排序树:
(1)若他的左子树不为空,则左子树上所有的结点的值均小于它的根结点的值;
(2)若他的右子树不空,则右子树上所有的结点的值均大于它的根节点的值;
(3)它的左、右子树也分别为二叉排序树。
平衡二叉树
平衡二叉树:
(1)它的左子树和右子树都是平衡二叉树
(2)且左子树和右子树的深度之差的绝对值不超过1
(3)若将二叉树上的结点的平衡因子定义为该结点大的左子树的深度减去右子树的深度,则平衡二叉树上所有的结点的平衡因子只可能是-1、0、1 。