数据结构实验报告数值转换和一元多项式.doc

数据结构实验报告数值转换和一元多项式.doc

ID:61429415

大小:310.50 KB

页数:29页

时间:2021-01-29

数据结构实验报告数值转换和一元多项式.doc_第1页
数据结构实验报告数值转换和一元多项式.doc_第2页
数据结构实验报告数值转换和一元多项式.doc_第3页
数据结构实验报告数值转换和一元多项式.doc_第4页
数据结构实验报告数值转换和一元多项式.doc_第5页
资源描述:

《数据结构实验报告数值转换和一元多项式.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、编号:江西理工大学数据结构课程设计报告班级:网络112班学号:09姓名:李秀光时间:2012年12月31日~2012年1月11日指导教师:涂燕琼井福荣2013年01月数制转换一、需求分析1、输入的形式和输入值的范围n和f的输入形式均为int型,n和f的输入范围均为1~327672、输出的形式十六进制10-15输出A-E,超过十六进制时按16以上数值按原值输出。3、程序所能达到的功能把十进制数n转换成任意进制数f(对于输入的任意一个非负十进制整数,输出与其等值的任意进制数(如二,四,八,十六进制)。4、测试数据n(十进制)f(进制)输出值2

2、2210110354411202537681240032767167FFF一、概要设计1、抽象数据类型的定义ADTStack{基本操作:InitStack(&S)操作结果:构造一个空栈s。Push(&S,e)初始条件:栈s已存在。操作结果:插入元素e为新的栈顶元素。Pop(SqStack&S)初始操作:栈s已存在且非空。操作结果:删除s的栈顶元素,并用e返回其值。StackEmpty(SqStackS)初始条件:栈s已存在。操作结果:若栈为空则返回1,否则返回0。}ADTStack2、主程序的流程以及各程序模块之间的层次调用关系见(三、详

3、细设计3、流程图)↓一、详细设计1、数据类型//=====ADTStack的表示与实现=====////-----数制转换-----//#defineSTACK_INIT_SIZE100//存储空间初始分配量#defineSTACKINCREMENT10//存储空间分配增量typedefstruct{int*base;int*top;intstacksize;}SqStack;//-----基本操作的函数原型说明-----//voidInitStack(SqStack&S)//构造一个空栈svoidPush(SqStack&S,inte)

4、//插入e为新的栈顶元素intPop(SqStack&S)//删除s的栈顶元素,并用e返回其值intStackEmpty(SqStackS)//若栈为空则返回1,否则返回0voidconversion(intn,intf)//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数2、伪码算法//-----基本操作的算法描述-----//voidInitStack(SqStack&S){//构造一个空栈sS.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!S.base)exit(-

5、2);S.top=S.base;S.stacksize=STACK_INIT_SIZE;}//InitStackvoidPush(SqStack&S,inte){//插入元素e为新的栈顶元素if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));if(!S.base)exit(-2);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.

6、top++=e;}//PushintPop(SqStack&S){//删除s的栈顶元素,并用e返回其值inte;if(S.top==S.base)return0;e=*--S.top;returne;}//PopintStackEmpty(SqStackS){//若栈为空则返回1,否则返回0if(S.top==S.base)return1;elsereturn0;}//StackEmpty//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数voidconversion(intn,intf){InitStack(S);while

7、(n){Push(S,n%f);n=n/f;}while(!StackEmpty(S)){Pop(S,e)printf("%d",e);}}//conversion3、流程图输入n和fq=y

8、

9、q=Y打印标题开始Yn>0输入q要换转的十进制数错误Nf>0Y请输入正确的进制位!NInitStack()初始化栈Yn!=0NPush(S,n%f)YNNn=n/f!StackEmpty(S)Y结束输出转换后的数值4、调试分析(1)调试过程中遇到的问题和解决方法在调试过程中主要遇到一些符号打错或输出、输出和函数之类的名称打错或漏打,根据第一行提示的

10、错误然后进行修改,修改之后再运行调试,如此循环,直到彻底正常运行,后面就是优化见面的问题了。(2)算法的时空分析和改进设想算法时间复杂度:f(n)改进设想:可在输出时将>10的数字用A-Z输出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。