【Ex-9-3】线性表中各结点的查找概率不等,则可用如下策略提高顺序查找的效率。若找到与给定值相匹配的元素,则...
单项选择题【Ex-9-3】线性表中各结点的查找概率不等,则可用如下策略提高顺序查找的效率。若找到与给定值相匹配的元素,则将该元素与其直接前驱元素(若存在)交换,使得经常被查找的元素尽量位于表的前端。下面算法的功能是:在线性表的顺序存储表示和链接存储表示的基础上实现顺序查找。请在空白处填入正确的语句。 【解答】: (1) int SeqSearch ( SeqList &L, elemType x ) { // 在顺序表 L 中从表的前端开始查找与给定值 x 匹配的元素,找到后与它前一个元素 //(若有)交换位置,再返回新的位置(注意地址从 0 开始)。 int i = 0; elemType temp; while ( __________①__________ ) i++; if ( _____②_________ ) return 0; //查找不成功 else { //查找成功 if ( i > 0 ) { temp = L.elem[i - 1]; L.elem[i - 1] = L.elem[i]; L.elem[i] = temp; } return i; } } (2) LinkNode *LinkSearch ( LinkList &L, elemType x ) { LinkNode *p = L->link, _______③_________; while ( p != NULL && p->elem != x ) { ppre = pre; _____④_____; p = p->link; } if ( p != NULL && pre != L ) { //查找成功,交换结点 p 与 pre _______⑤_______; p->link = pre; ppre->link = p; } return p; }
A.elem[i
B.elem[i
C.elem[i];
D.elem[i]