数据结构实验三(1).doc

上传人:知****量 文档编号:72429000 上传时间:2023-02-11 格式:DOC 页数:9 大小:67.54KB
返回 下载 相关 举报
数据结构实验三(1).doc_第1页
第1页 / 共9页
数据结构实验三(1).doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《数据结构实验三(1).doc》由会员分享,可在线阅读,更多相关《数据结构实验三(1).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据结构实验三(1)数据结构实验报告三实验名: 栈的基本操作 院系:物理与电子工程系 姓名:黄锐(2009122105) 班级: 20091221 日期:2010-1013 请在下次上机前以附件形式提交到yuan_sjjg一、上机实验的问题和要求:设计算法,入栈和出栈的操作。具体实现要求:1写出栈的入栈和出栈算法。2写一个程序,将输入的十进制数据M 转换为八进制数据M8,将其调试通过.在此基础上修改程序,实现十进制数据M 向N 进制(2或8或16)的转换。(1)采用顺序存储结构实现栈。(2)采用链表结构实现栈.二、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,

2、符号名说明等)关于链表实现栈操作,内存空间利用比较充分,你插入一个,他就给你分配一个内存空间,这样相对顺序表实现栈比较合理。三、源程序及注释:1。 采用顺序存储结构实现栈:includeincludestdio。h#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef struct int base;int top;int stacksize;SqStack;/初始化得到一个空栈/void InitStack(SqStack &s)s.base =(int )malloc(STACK_INIT_SIZEsizeof(int);if

3、(!s.base ) exit(0);s.top=s.base ;s。stacksize =STACK_INIT_SIZE;/向栈里插入一个数/int StackInter(SqStack s,int e)if(s。top s。base=s.stacksize )s。base=(int )realloc(s。base,(s.stacksize+STACKINCREMENT)*sizeof(int));if(!s.base) exit(0);s.top=s。base+s.stacksize;s.stacksize+=STACKINCREMENT;s。top+=e;return 1;/把栈顶元素删

4、除,并把值赋给e,实现退栈/int StackPop(SqStack &s,int e)if(s。top=s.base) return 0;e=*-s.top;*s.top =0;return 1;main()SqStack p;int q=0,n ,j,date20,o;printf(请输入一个十进制的数和要转换的目标进制:n”);cinno;InitStack(p);/入栈/while(n)StackInter(p,n%o);n/=o;q+;cout转换后的数为:;/出栈输出结果/for(j=0;jq;j+)if(StackPop(p,datej))switch(datej)case 10

5、:coutA;break;case 11:cout”B”;break;case 12:cout”C;break;case 13:coutD;break;case 14:coutE”;break;case 15:cout”F”;break;default:coutdatej;else coutincludestdlib。hincludedate=e;p=(Sqt )malloc(sizeof(Sqt);/new Sqt();if(!p) exit(0);p-prior=s。top;s.top=p;return 1;/把栈顶元素删除,并把值赋给e,实现退栈/int StackPop(SqStack

6、 &s,int &e)Sqt p;if(s。top=s.base)cout该栈已为空栈!”date;s。toppriordate=0;p=s。top;s.top=s.topprior;free(p);/删除一个,就释放一个return 1;main()SqStack p;int q=0,n ,j,date20,o;printf(请输入一个十进制的数和要转换的目标进制:n);cinno;InitStack(p);/入栈/while(n)StackInter(p,n%o);n/=o;q+;cout”转换后的数为:”;/出栈输出结果/for(j=0;jq;j+)if(StackPop(p,datej

7、))/如果是16进制就以字母的形式显示出来/switch(datej)case 10:cout”A”;break;case 11:cout”B”;break;case 12:coutC;break;case 13:coutD”;break;case 14:coutE”;break;case 15:coutF”;break;default:coutdatej;else cout退栈失败!endl;coutendl;free(p.base); /释放malloc()在堆中申请的内存空间四、运行输出结果:1。 采用顺序存储结构实现结果:2。 采用链表结构实现栈结果:五、调试和运行程序过程中产生的问题及采取的措施:出现函数引用和传值方面的问题。把void InitStack(SqStack &s)中的参数改成引用(取别名)。六、对算法的程序的讨论、分析,改进设想,其它经验教训:七、对实验方式、组织、设备、题目的意见和建议:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁