欢迎来到天天文库
浏览记录
ID:38051520
大小:35.00 KB
页数:3页
时间:2019-05-24
《数据结构实验(二)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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);}
此文档下载收益归作者所有