数据结构总结之三—动态查找表
1.前言
提到动态的话,就要想到链表了,所以这一次主要是总结,在链表上如何实现查找。
2.二叉排序树
2.1什么是二叉排序树
若树的左子树不为空,那么左子树上所有节点的值均小它的根节点的值。若他的右子树不为空,那么右子树上所有节点的值,均大于他的根节点的值。这个定义,感觉上其实是跟堆基本上没有差别,可以学完二叉排序树之后再去学下堆。
2.2二叉排序树中的查找
pnode search(Bittree T, int key)
{
if(!T)
return ERROR;
if (key == T->data);
return T;
else if (key > T->data)
search(T->rchild, key);//根据二叉排序树的特性
//右子树节点的值要大于根节点的值
//所以比根节点大师,要到右子树中进行搜索
else if (key < T->data)
search(T->lchild, key);
return ERROR;
}
2.3二叉排序树的插入和删除
二叉排序树的结构不是一次生成的,而是在查找过程中,如果发现不存在于二叉排序树中,则进行插入操作,