一、算法描述
将一个数按照想要的进制,进行转换。用到的栈的原因是,计算出来的数是从第一位开始的,为了方便输出,进行的栈的运用。其实就是逆序输出P48
二、数据结构与算法
1、数据结构(栈)
#define STACK_INIT_SIZE 100//存储空间初始分配量
#define STACKINCREMENT 10//存储空间分配增量
typedef struct{
SElemType *base;//栈的首地址指向的元素指针
SElemType *top;//栈顶指针 **注意这个栈顶指针指向的是栈中的顶 这个顶是元素为空的
int stackSize;//当前已分配的存储空间,以元素为单位
}SqStack;
Status InitStack(SqStack &S){
//构造一个空栈S
S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if (!S.base)
{
return OVERFLOW;
}
S.top = S.base;
S.stackSize = STACK_INIT_SIZE;
return OK;
}
Status GetTop(SqStack S, SElemType &e){
//若栈不空,则返回S的栈顶元素,并返回OK;否则返回ERROR
if (S.base == S.top)
{
return ERROR;
}
e = *(S.top - 1);
return OK;
}
Status Push(SqStack &S, SElemType e){
//e元素进栈
if (S.top - S.base