![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
设链表中的数据元素结构为关键字域key和指向下一个元素的指针。试对此链表写出顺序查找的算法。若查找不成功,
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
设哈希表长为14,哈希函数是H(key)=key%11,表中已有数据的关键字为15、38、61、84共4个,现要将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是()。
A.8
B.3
C.5
D.9
设有一组关键字为{19,15,23,2,68,20,84,28,55,11,10,80},用链地址法构造哈希表,哈希函数为h(key)=key%13,则哈希地址为2的链表中有______个记录。
A.1
B.2
C.3
D.4
设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。
算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下:
哈希表的地址区间为0~17,哈希函数为h(key)=K9/617。采用线性探测法处理冲突,并将关键字序列{26,25,72,38,8,18,59}依次存储到哈希表中,则存放元素59需要搜索的次数是________。
A.5
B.4
C.3
D.2
设用链表作为栈的存储结构则退栈操作()。
A.必须判别栈是否为满
B.必须判别栈是否为空
C.判别栈元素的类型
D.对栈不作任何判别
已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在下划线内填入正确内容。 { int data;struct link*next; } main() { struct link*head; ┆ sum(head); ┆} sum(【 】); { struct link*p;int s=0; p=head->next; while(p){s+=p->data;p=p->next;} return(s);}