- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7-1设A={1,2,3}-Read.doc
8-1 设有序顺序表中的元素依次为017, 094, 154, 170, 275, 503, 509, 512, 553, 612, 677, 765, 897, 908。试画出对其进行折半有哪些信誉好的足球投注网站时的二叉有哪些信誉好的足球投注网站树, 并计算有哪些信誉好的足球投注网站成功的平均有哪些信誉好的足球投注网站长度和有哪些信誉好的足球投注网站不成功的平均有哪些信誉好的足球投注网站长度。
【解答】
8-2 若对有n个元素的有序顺序表和无序顺序表进行顺序有哪些信誉好的足球投注网站, 试就下列三种情况分别讨论两者在等有哪些信誉好的足球投注网站概率时的平均有哪些信誉好的足球投注网站长度是否相同?
(1) 有哪些信誉好的足球投注网站失败;
(2) 有哪些信誉好的足球投注网站成功, 且表中只有一个关键码等于给定值k的对象;
(3) 有哪些信誉好的足球投注网站成功, 且表中有若干个关键码等于给定值k的对象, 要求一次有哪些信誉好的足球投注网站找出所有对象。
【解答】
(1) 不同。因为有序顺序表有哪些信誉好的足球投注网站到其关键码比要查找值大的对象时就停止有哪些信誉好的足球投注网站,报告失败信息,不必有哪些信誉好的足球投注网站到表尾;而无序顺序表必须有哪些信誉好的足球投注网站到表尾才能断定有哪些信誉好的足球投注网站失败。
(2) 相同。有哪些信誉好的足球投注网站到表中对象的关键码等于给定值时就停止有哪些信誉好的足球投注网站,报告成功信息。
(3) 不同。有序顺序表中关键码相等的对象相继排列在一起,只要有哪些信誉好的足球投注网站到第一个就可以连续有哪些信誉好的足球投注网站到其它关键码相同的对象。而无序顺序表必须有哪些信誉好的足球投注网站全部表中对象才能确定相同关键码的对象都找了出来,所需时间就不相同了。
前两问可做定量分析。第三问推导出的公式比较复杂,不再进一步讨论。
8-3 假定用一个循环链表来实现一个有序表,并让指针head指向具有最小关键码的结点。指针current初始时等于head,每次有哪些信誉好的足球投注网站后指向当前检索的结点,但如果有哪些信誉好的足球投注网站不成功则current重置为head。试编写一个函数search(head, current, key)实现这种有哪些信誉好的足球投注网站。当有哪些信誉好的足球投注网站成功时函数返回被检索的结点地址,若有哪些信誉好的足球投注网站不成功则函数返回空指针0。请说明如何保持指针current以减少有哪些信誉好的足球投注网站时的平均有哪些信誉好的足球投注网站长度。
【解答】
相应的有哪些信誉好的足球投注网站函数可以定义为链表及链表结点类的友元函数,直接使用链表及链表结点类的私有数据成员。
templateclass Type
ListNode Type * Search ( ListNodeType * head, ListNodeType * current, Type key ) {
ListNode Type * p, * q;
if ( key current ) { p = head; q = current; } //确定检测范围, 用p, q指示
else { p = current; q = head; }
while ( p != q p-data key ) p = p-link; //循链有哪些信誉好的足球投注网站其值等于key的结点
if ( p-data == key ) { current = p; return p; } //找到, 返回结点地址
else { current = head; return NULL; } //未找到, 返回空指针
}
8-4 考虑用双向链表来实现一个有序表,使得能在这个表中进行正向和反向有哪些信誉好的足球投注网站。若指针p总是指向最后成功有哪些信誉好的足球投注网站到的结点,有哪些信誉好的足球投注网站可以从p指示的结点出发沿任一方向进行。试根据这种情况编写一个函数search(head, p, key),检索具有关键码key的结点,并相应地修改p。最后请给出有哪些信誉好的足球投注网站成功和有哪些信誉好的足球投注网站不成功时的平均有哪些信誉好的足球投注网站长度。
【解答】
template class Type
DblListNodeType * Search ( DblListNodeType * head, DblListNodeType * p, Type key ) {
//在以head为表头的双向有序链表中有哪些信誉好的足球投注网站具有值key的结点。算法可视为双向链表类和双向链表结点类的友元
//函数。若给定值key大于结点p中的数据, 从p向右正向有哪些信誉好的足球投注网站, 否则, 从p向左反向有哪些信誉好的足球投注网站。
DblListNodeType * q = p;
if ( key p-data ) { while ( q != NULL q-data key ) q = q- lLink; } //反向有哪些信誉好的足球投注网站
else { while ( q != NULL q-data key ) q = q- rLink; } //正向有哪些信誉好的足球投注网站
if ( q != NULL q-data == key ) { p = q; return p; } //有哪些信誉好的足球投注网站成功
else return NULL;
}
如果指针p处于第i个结点(i = 1, 2, …, n),它左边有i-1个结点,右边有n-i个结点。找到左边第i-1号结点比较2次,找到第i-2号结点比较3次,…,找到第1号结点比较i次,一般地,找到左边第k个结点比较i-
文档评论(0)