数据结构实验(二)

数据结构实验(二)

ID:38051520

大小:35.00 KB

页数:3页

时间:2019-05-24

数据结构实验(二)_第1页
数据结构实验(二)_第2页
数据结构实验(二)_第3页
资源描述:

《数据结构实验(二)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二:栈在数值进制转换中的应用实验学时:2学时一.实验目的:1.掌握栈的存储结构;2.掌握在栈的建立、插入、删除操作。二.实验内容:1.分别建立建栈、进栈、出栈函数;2.利用数值进制的转换原则合理的应用栈。三.实验重点:栈的建立及操作。四.实验要求:1.用C语言编写程序源代码;2.要分别完成建立、插入、删除功能。3.源程序必须编译调试成功,独立完成。五.实验器材:一个装有C语言编译环境的计算机。六.实验步骤:单链表:1.定义头文件和单链表的结构体类型#include#includetypedefst

2、ruct{SElemtypedata;SElemtype*top;Intstacksize;}Sqstack;2.编写构造栈的函数3.编写对栈进行插入操作的函数:4.编写对栈进行删除操作的函数:5.编写主函数#include#include#defineinitsize20#defineincrement10#defineOK1#defineERROR0#defineOVERFLOW0typedefcharelemtype;typedefstructstack{elemtype*base;elemty

3、pe*top;intstacksize;}stack;voidinitstack(stack&s){s.base=(elemtype*)malloc(initsize*sizeof(elemtype));if(!s.base)exit(OVERFLOW);s.stacksize=initsize;s.top=s.base;}voidpush(stack&s,elemtypee){if(s.top-s.base>=initsize)s.base=(elemtype*)realloc(s.base,(s.stacksize+increment

4、)*sizeof(elemtype));if(!s.base)exit(OVERFLOW);s.stacksize+=increment;*s.top=e;s.top++;}voidpop(stack&s,elemtype&e){if(s.base==s.top)printf("有错误");elsee=*--s.top;}intempty(stack&s){if(s.base==s.top)returnOK;elsereturnERROR;}voidclear(stack&s){if(s.base==s.top)return;s.base

5、=s.top;}voidconversion(intn,intN){intc;chare;stacks;initstack(s);while(n!=0){c=n%N;n=n/N;if(c<10)*s.top++='0'+c;else{*s.top++='A'+c-10;}}while(!empty(s)){pop(s,e);printf("%c",e);}clear(s);}voidmain(){intn,N;printf("请输入十进制数:");scanf("%d",&n);printf("请输入需要转化进制:");scanf("%d"

6、,&N);printf("转化后的数是:");conversion(n,N);}

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

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

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