没有合适的资源?快使用搜索试试~ 我知道了~
箱子最优化匹配,数据结构
资源推荐
资源详情
资源评论
《数据结构》课程设计
箱子装载问题的最优匹配法
一 目的
利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用 C/C+
+语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表 、
栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建
模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利
用计算机分析解决综合性实际问题的基本能力。
二 需求分析
1、数据输入
输入两组组数据,一组是 个箱子及其容量 M[i]和一组 W 个物品及重量 W[i]。
2、数据输出
输出几组数据,分别是初始构造的二叉查找树,经过最优化分配后的二叉查找树,所有
物品装入箱子需要的最少箱子以及 箱子个数。
3、程序所达到的功能
给定给各箱子的剩余容量和各物品的重量 i,根据箱子剩余容量大小,构
造二叉查找树,根据要装入的物品需要占用的箱子容量 [i],在二叉查找树中查
询最适合它的箱子,修改该箱子的剩余容量,从二叉查找树中删除被选中的箱子,
将减少了容量的箱子再插入到二叉查找树中,所有物品装箱后,打印最终的装箱
结果,也就是输出箱子装载物品的最优化的方法。
三 概要设计
1、存储结构描述
箱子容量
箱子编号
中南民族大学计算机科学学院 姓名: 王杰 专业: 计算机科学与技术 学号:201921098167
《数据结构》课程设计
箱子编号
无参构造函数
!""
#
有参构造函数
$ $ !""$
!""$$$#
%&获取箱子容量
&设置箱子容量
%'获取箱子编号
'设置箱子编号
(返回左孩子指针
"(设置左孩子指针
%)返回右孩子指针
*%)设置右孩子指针
#
)$+$+插入节点核心函数
,)$+删除节点核心函数
)输出二叉树核心函数
%,获取最小节点
中南民族大学计算机科学学院 姓名: 王杰 专业: 计算机科学与技术 学号:201921098167
《数据结构》课程设计
,删除最小节点
-)$+检索节点
)清空二叉树
二叉树根节点
,箱子数量
./01最优匹配化后的各箱子容量
!""#无参构造
,有参构造
!""
)23, ,
#
4)# 析构函数
$插入接口函数
,删除接口函数
-56查找最合适的箱子
-$最优化分配
输出二叉树
,!/.1输出所有被使用的箱子编号以及数量
#
2、主要算法思想
检索二叉树的建立:根据二叉树的特点,左孩子小于右孩子,在插入发的过程中将检索二
叉树建立。
箱子最优匹配法:插入物品的时候优先插入可用空间容量最小且大于物品尺寸的箱子。
由于箱子的剩余容量可能相同,所以我们采用一颗带有重复关键字的二叉搜索树来描述箱
子。
节点的键为箱子剩余空间的大小,假如我们要插入物体的尺寸大小为 ,我们首先比较该
与根节点的键大小,如果 小于根节点大侠则将 设为候选箱子,然后再根节点的左子
中南民族大学计算机科学学院 姓名: 王杰 专业: 计算机科学与技术 学号:201921098167
剩余14页未读,继续阅读
资源评论
Mxmevol
- 粉丝: 31
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功