//顺序查找:技巧,卫兵法,在查找的线性表后加入要查找的元素 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)删除节点有两个分支,首先找到左分支的最大值,把该最大值赋给被删的节点,然后删掉最大值所在的节点,这个最大值所在的节点要么是叶子节点要么只有一个分支