该程序能实现各种进制的数据间的相互转换(只支持整数),而且最高进制为16进制。
#include<stdio.h>
#include<malloc.h>
#define INIT_SIZE 100 //存储空间初始分配量
#define INCREMENT 10 //存储空间分配增量
#define ElemType int //数据类型
//堆栈数据结构
typedef struct
{
ElemType *base; //在栈构造之前和销毁之后,base的值为NULL
ElemType *top; //栈顶指针
int stacksize; //当前已分配的存储空间,以元素为单位
}SqStack;
//构造一个空栈
int InitStack(SqStack &S)
{
S.base = (ElemType *)malloc(INIT_SIZE * sizeof(ElemType));
if(S.base == NULL)
{
printf("存储空间分配失败!\n");
return -1;
}
S.top = S.base;
S.stacksize = INIT_SIZE; //初始时栈中没有元素