- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2014年春季学期
算法与数据结构 课程设计
题目:1.排列比较
2.递归替换
3.跳马问题
4.长整数的运算
专业班级:
姓 名:
学 号:
指导教师:
成 绩:
目 录
TOC \o 1-3 \h \z
摘 要 1
前 言 2
正 文 3
1. 采用类c语言定义相关的数据类型 3
2. 各模块的伪码算法 4
3. 函数的调用关系图 11
4. 调试分析 11
5. 测试结果 1 3
6. 源程序(带注释) 16
总 结 29
参考文献 30
致 谢 31
附件Ⅰ基本算法实现 32
PAGE 36
摘 要
这次的课程设计是排序算法比较问题,递归替换问题,跳马问题和长整数运算问题。
其中排列算法中我只用到了三种排序方法,分别为冒泡,插入,选择。而递归替换我选择了这学期所学的汉诺塔。跳马问题则是在书籍上看到,加深其理解并实现程序。长整数则是求助老师,贴吧上的人。我对自己的课程设计有着较深的理解,前三种基本都是递归算法和回溯算法的体现,然而长整数却是用到了结构体和链表。其中长整数难度较高,其理解较难,花了我相当长的时间。
关键字:
数组,结构体,结构体指针,双向循环链表,前向指针,后向指针,头指针,数字字符,十进制数,动态分配存储空间
前 言
课程设计是我们学习过程中一个非常重要的环节,它重在测试大家实践能力,知识应用能力和解决问题的能力.同时它又需要以扎实的理论知识为基础.
在做课程设计时我们大家必须具备基本的程序设计知识,在平时的学习过程中多上机实习,试着用自己的思路去编程,调试及运行,在这过程中不断地积累经验,这样在做课程设计时就会比较得心应手.
我在做此课程设计时花的时间比较长,但我自己认为这最大的可取之处在于我并没有用大多数的时间去编写源代码,而是用在如何构思上面,在经过深思熟虑之后再动手写源代码.因此整个课程设计进行得比较顺利,几乎没有出现”反工”的情况.但是其中也出现了一些解决不了的问题,具体见正文.
同时我感触很深的一点是在编写代码时必须有一定的方法,这就涉及到计算机科学与技术这门学科所提到的方法论,其中很多的方法都具有很高的参考价值.
正 文
1.采用类c语言定义相关的数据类型
1.一维数组array[5]={3,1,2,5,4};
2.参数盘子个数n,塔a,b,c
3.一维数组 横格Movel[8]={-2,-1,1,2,2,1,-1,-2};
纵格Movev[8]={1,2,2,1,-1,-2,-2,-1};和二维数组int A[8][8];
4.长整数的运算
上述程序设计思想主要用到的数据结构是结构体和双向循环链表
struct DuLNode //双向循环链表的结点;
{
int data;
struct DuLNode *prior;
struct DuLNode *next;
};
2.各模块的伪码算法
1.排序算法比较问题:统一用三角替换方法
void swap(int array[],int i,int j)
{
int tmp=array[i];
array[i]=array[j];
array[j]=tmp;
}
插入算法: void InsertSort(int array[],int n)
{
for(int i=1;in;i++)
{
for(int j=i;j0;j--)
{
if(array[j]array[j-1])
swap(array,j,j-1);
else
break;
}
}
}
冒泡算法: void BubbleSort(int array[],int n)
{
for(int i=0;in-1;i++)
{
for(int j=n-1;ji;j--)
{
if(array[j]array[j-1])
swap(array,j,j-1);
}
}
}
选择算法:void SelectionSort(int array[],int n)
{
for(int i=0;in-1;i++)
{
int smallest=i;
for(int j=i+1;jn;j++)
{
if(array[smallest]array[j])
smallest=j;
}
swap(array,i
原创力文档


文档评论(0)