问题及代码:
头文件:
/*
*烟台大学计算机与控制工程学院
*作 者:杨宁
*完成日期:2015年10月7日
*问题描述:把十进制数转换为二至九之间的任意进制数输出。请利用栈设计算法,并实现程序。
*/
#ifndef SQSTACK_H_INCLUDED
#define SQSTACK_H_INCLUDED
#define MaxSize 100
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int top; //栈指针
} SqStack; //顺序栈类型定义
void InitStack(SqStack *&s); //初始化栈
void DestroyStack(SqStack *&s); //销毁栈
bool StackEmpty(SqStack *s); //栈是否为空
int StackLength(SqStack *s); //返回栈中元素个数——栈长度
bool Push(SqStack *&s,ElemType e); //入栈
bool Pop(SqStack *&s,ElemType &e); //出栈
bool GetTop(SqStack *s,ElemType &e); //取栈顶数据元素
void DispStack(SqStack *s); //输出栈
#endif // SQSTACK_H_INCLUDED<

本文介绍了如何利用栈实现数制转换,通过一个具体的例子展示了将十进制数10转换为二进制的过程。算法思路是连续除以基数并记录余数,最终将余数逆序输出。这个过程体现了栈的后进先出特性。
最低0.47元/天 解锁文章
1556





