百度文库- 让每个人平等地提升自我11 实验二栈的应用 ( 数制转换 ) 一、 实验目的掌握栈的基本操作:初始化栈、判栈为空、出栈、入栈等运算
二、实验要求1. 认真阅读和掌握本实验的算法
2. 上机将本算法实现
3. 保存程序的运行结果,并结合程序进行分析
三、实验内容利用栈的基本操作实现将任意一个十进制整数转化为R进制整数算法为:1、定义栈的顺序存取结构2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)3、定义一个函数用来实现上面问题:(1) 十进制整数 X 和 R作为形参(2) 初始化栈(3) 只要 X 不为 0 重复做下列动作将 X % R入栈 , X=X/R (4) 只要栈不为空重复做下列动作栈顶出栈 , 输出栈顶元素四、实验报告要求:1、十进制整数转化为R进制整数算法的代码;2、程序运行结果及分析;3、实验总结
实验源码:#include"" #include"" #include"" #define maxsize 100 typedef struct{ int data[maxsize]; 百度文库- 让每个人平等地提升自我22 int top; }seqstack,*pseqstack; pseqstack setstack() { pseqstack s; s=(pseqstack)malloc(sizeof(seqstack)); if(s) s->top=-1; return s; } int empty(pseqstack s) { if(s->top==-1)return 1; else return 0; } pseqstack pushin(pseqstack s,int m,int r) { if(s->top==maxsize-1) printf("此栈已满,无法入栈
\n"); else 百度文库- 让每个人平等地提升