計算机软件应用结课作业.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
計算机软件应用结课作业

《软件技术基础》结课大作业 姓名: 院振召 学号: 120611335 日期: 2014年6月20日 2014软件技术基础期末作业 说明与要求: 开放式考试不仅考察知识,同时考察学生查阅文献的能力;学生可以使用Google、百度等搜索引擎,图书馆数字资源,如同方CNKI(中国学术期刊全文数据库)查阅资料,寻找答案和解题思路; 可以使用各种工具帮助自己解题,可以相互讨论,但是不允许拷贝、复制、剽窃他人结果。如果发现雷同,按雷同人数,每次雷同从成绩中扣除10分。因不存在完美雷同标准,因此将根据批改教师的个人识别,进行雷同确认,因此为避免雷同,请自己设计代码或解题; 每个编程问题都要首先说明思路,然后给出代码;程序以及求解方法描述的编辑应该美观;程序代码应该有层次缩进,以便阅读; 每个编程问题的C/C++代码的每一行必须有清晰的注释,说明改行中变量和语句的作用,如果注释和C/C++语句不符,则视为剽窃。 根据自己的情况,采用C或C++语言中德一种作为编程语言,不能使用两种以上的语言; 编辑排版时,采用汉字五号宋体,英语和代码采用10号或五号Times New Roman字体,打印时采用双面打印,连同填写好的封面一起装订,在最后一堂课时上交;禁止使用更大号字; 2014软件技术基础期末作业 利用减半递推技术,写出求长度为n的数组中最大元素的递归算法(10分)。 编写用回溯法求解n皇后的算法(10分)。 给定n个城市间的距离,求从一个城市0出发经过其他城市一次且一次的一条最短路径(15分)。 将单链表看做二叉树,编写递归程序打印单链表(10分)。 编写二叉树的层次遍历算法(15分)。 自底向上实现归并排序算法(10分)。 实现堆排序算法(15分)。 实现迪杰斯特拉最短路径算法(15分) 1、利用减半递推技术,写出求长度为n的数组中最大元素的递归算法 解释说明: 解决实际问题的复杂程度往往与问题的规模有着密切的关系,因此,降低问题的规模是算法设计的关键,而减半递推技术是降低问题国模的一种有效方法。所谓的“减半”,是指将问题的规模减半,而问题的性质不变。所谓的“递推”是指重复“减半”的过程。 算法如下: #includeiostream using namespace std; int max(int a[],int left,int right) { int mid=(left+right)1; int x,y; if(left==right-1)return a[left]; x=max(a,leftmid); y=max(a,mid,right); return xy?x:y; } void main() { int n,i; int a[1000]; cinn; for(i=0;in;i++)cina[i]; coutmax(a,0,n)endl; } 编写用回溯法求解n皇后的算法 解释说明: n个皇后在n元棋盘上的布局有n的n次方种,用回溯发求解问题。 假设定义一个长度为n的一维数组q,其中的每一个元素q[i](i=1,2,...,n)随时记录第n行上的皇后所在的序列号。 初始时,先将各皇后放在各行的第一列。即数组q的初值为|q[i]-q[j]|=|i-j| 而它们在同一列上的条件为q[i]=q[j] 算法如下: #include iostream #include cmath using namespace std; class NQueen { private: int numOfQueen;//the number of queens int numOfanswer;//the number of answers int *queen; public: NQueen(); NQueen(int m); ~NQueen(); bool place(int k); void backtrack(int t); void showQueen(); }; NQueen::NQueen() { numOfQueen = 0; numOfanswer = 0; queen = new int [1]; } NQueen::NQueen(int m) { numOfQueen = m; numOfanswer = 0; queen = new int [m+1]; for(int i=0;i=m;i++) { queen[i]=0; } } NQueen::~NQueen() { delete

文档评论(0)

df9v4fzI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档