第一范文网 - 专业文章范例文档资料分享平台

第7章 排序 习题参考答案

来源:用户分享 时间:2025/5/25 22:04:31 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

//而i的前面放的都是比基准位小的值,那么基准位 //的值应该放到i所在的位置上 if (i != pivot) {

int temp = ary[i]; ary[i] = ary[pivot]; ary[pivot] = temp; }

if (i - low > 1) {

//此时不排i的原因是i位置上的元素已经确定了,i前面的都是比i小的,i后面的都是比i大的

stack[1][top] = i - 1; stack[0][top] = low; top++; }

//当high-i小于等于1的时候,就不往栈中放了,这就是外层while循环能结束的原因 //如果从i到高位之间的元素个数多于一个,那么需要再次排序 if (high - i > 1) {

//此时不排i的原因是i位置上的元素已经确定了,i前面的都是比i小的,i后面的都是比i大的

stack[1][top] = high; stack[0][top] = i + 1; top++; } } }

5. 试设计算法,判断完全二叉树是否为大顶堆。 参考答案:

boolean checkmax(BiTreeNode t) //判断完全二叉树是否为大顶堆 {

BiTreeNode p = t;

if (p.getLchild() == null && p.getRchild() == null) { return true; } else {

if (p.getLchild() != null && p.getRchild() != null) { if ((((RecordNode)

p.getLchild().getData()).getKey()).compareTo(((RecordNode) p.getData()).getKey()) <= 0 && (((RecordNode) p.getRchild().getData()).getKey()).compareTo(((RecordNode) p.getData()).getKey()) <= 0) {

return checkmax(p.getLchild()) && checkmax(p.getRchild()); } else {

return false; }

} else if (p.getLchild() != null && p.getRchild() == null) { if ((((RecordNode)

p.getLchild().getData()).getKey()).compareTo(((RecordNode) p.getData()).getKey()) <= 0) {

return checkmax(p.getLchild());

} else {

return false; }

} else if (p.getLchild() == null && p.getRchild() != null) { if ((((RecordNode)

p.getRchild().getData()).getKey()).compareTo(((RecordNode) p.getData()).getKey()) <= 0) {

return checkmax(p.getRchild()); } else {

return false; }

} else {

return false; } } }

搜索更多关于: 第7章 排序 习题参考答案 的文档
第7章 排序 习题参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3z15o1ypvl03ypi6bk157e16g2f50200ovb_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top