《实验二+++栈的应用(数制转换)》由会员分享,可在线阅读,更多相关《实验二+++栈的应用(数制转换)(5页珍藏版)》请在金锄头文库上搜索。
1、实验二 栈的应用(数制转换)一、实验目的掌握栈的基本操作:初始化栈、判栈为空、出栈、入栈等运算。二、实验规定1. 认真阅读和掌握本实验的算法。2上机将本算法实现。. 保存程序的运营成果,并结合程序进行分析。三、实验内容运用栈的基本操作实现将任意一种十进制整数转化为R进制整数算法为:1、定义栈的顺序存取构造、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)、定义一种函数用来实现上面问题:(1)十进制整数X和作为形参(2)初始化栈(3)只要X不为0反复做下列动作将X % R入栈, XX/R()只要栈不为空反复做下列动作栈顶出栈 , 输出栈顶元素四、实验报告规定:1、十进制整数转化为R进制整
2、数算法的代码;2、程序运营成果及分析;、实验总结。1. 实验源码:#inludestio.hinldestdlib.h#includemalloc.hdefi axize10typedestrctint datamaxsize;intto;seqtak,*pqstck;staksttack()seqstac ;s(pseqstack)maloc(size(sstack);if()to=-1;rurn s;int empty(peqtacks)if(s-tp=1)retun ;lse ren0;pseqsak pushi(pseqsas,it m,in)(op=axsiz-1)pinf(此栈已满
3、,无法入栈!n);swle(!)op+;dat-top=m%;m=(m-(m%)/r;retuns;nt ppou(pseqstac)if(pty(s)reun 0;elseprintf(转化后的数是:);whil(s-top!=-1)printf(%d,s-datasto);s-tp-;pta(n);eturn ;vid main()in m,r;pestack;p=(seqstak)maloc(szof(sestac));pritf(请输入一种十进制的正整数:);canf(d,&m);printf(请输入你想转化的进制位:);sanf(%d,&r);setstack();p=ushin(p,m,r);popo();2. 程序截图:3.实验总结: