查找算法:

//顺序查找:技巧,卫兵法,在查找的线性表后加入要查找的元素

while(a[i]!=x)

      i++;

return i;

//折半查找:

low height mid  O(log n);



//索引分块:把值的范围分成若干个区域,每个区域对应着起始的下标



//二叉排序树:动态查找,找不到插入该节点,特点,插入的点时叶子

p=tree;

parent=NULL;

while(p)

{

     if(p->element=key) break;

     if(p->element>key) parent=p;p=p->pLchild;

    if(p->element<key)  parent=p;p=p->pRchild;

}

if(p==NULL)

{

       if(parent->element<key)  parent->pLchild=新节点;

       else  parent->pRchild=新节点;

}
//二叉排序树的删除1)删除节点是叶子节点,直接删除即可
(2)删除节点只有一个分支,把断开的两个分支连接即可
(3)删除节点有两个分支,首先找到左分支的最大值,把该最大值赋给被删的节点,然后删掉最大值所在的节点,这个最大值所在的节点要么是叶子节点要么只有一个分支

posted on 2012-09-04 22:51  为梦飞翔  阅读(271)  评论(0编辑  收藏  举报

导航