欢迎来到天天文库
浏览记录
ID:14309525
大小:56.50 KB
页数:5页
时间:2018-07-27
《利用栈的结构和特点实现数制转换》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程实验报告课程名称数据结构班级网二实验日期2012-4-27姓名李小允学号实验成绩实验名称(给出本次实验的题目)实验目的及要求(给出本次实验所涉及并要求掌握的知识点)目的:利用栈的结构和特点实现数制转换实验报告要求1、每次实验前学生必须根据实验内容认真准备实验程序及调试时所需的输入数据。2、在指导教师的帮助下能够完成实验内容,得出正确实验环境(列出本次实验所使用的平台和相关软件)Microsoftvisualc++6.0实验内容(给出实验内容具体描述)假设以顺序存储结构实现一个栈,编写程序完成十进制整数转换八进制整数源(详细记录在调试过程中出现的问题及解决方法。记录实
2、验执行的结果,可以将程序运行结果抓图)5程序清单及实验结果#include#include#defineSTACK_INIT_SIZE100//存储空间初始分配量#defineSTACKINCREMENT10//存储空间分配增量#defineoverflow-1#defineerror0#defineok1typedefintStatus;typedefintSElemType;typedefstruct{SElemType*base;//在栈构造之前和销毁之后,base的值为NULLSElemType*top;//栈顶指针ints
3、tacksize;//当前已分配的存储空间,以元素为单位}SqStack;StatusInitStack(SqStack&S);StatusStackEmpty(SqStackS);StatusPush(SqStack&S,SElemTypee);StatusPop(SqStack&S,SElemType&e);StatusStackTraverse(SqStackS);voidconversion();intmain(){conversion();return0;}StatusInitStack(SqStack&S){//构造一个空栈SS.base=(SElemTyp
4、e*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)exit(overflow);S.top=S.base;S.stacksize=STACK_INIT_SIZE;returnok;}StatusStackEmpty(SqStackS){//若栈S为空栈,则返回TRUE,否则返回FALSEif(S.top==S.base)returnok;else5returnerror;}StatusStackTraverse(SqStackS){while(S.top>S.base){//cout<<*S.base<<""
5、;printf("%d",*S.base);S.base++;}//cout<=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S.base)exit(overflow);S.top=S.base+S.stacksize;S.stacksiz
6、e+=STACKINCREMENT;}*S.top++=e;returnok;}StatusPop(SqStack&S,SElemType&e){//若栈不空,则删除S的栈顶元素,用e返回其值,并返回TRUE;否则返回ERRORif(S.top==S.base)returnerror;e=*--S.top;returnok;}voidconversion(){SqStackS;intN,e;InitStack(S);5printf("请输入一个十进制数:");scanf("%d",&N);printf("请输入对应的八进制数:");while(N){Push(S,N
7、%8);N=N/8;}while(!StackEmpty(S)){Pop(S,e);printf("%d",e);}}5总结(对实验结果进行分析,问题回答,实验心得体会及改进意见)每次试验都会有不一样的体会,都会有不一样的心得!每次都能在试验中进步一点点,心情真的很好,我会再接再厉!为自己加油!相信自己会更好!每次试验结果出来之后,发现数据结构并不像想像的那么难!5
此文档下载收益归作者所有