如:我们将128转换为二进制数
输入格式:128 2
输出格式:10000000
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
#define STACK_INIT_SIZE 10
#define STACK_INCREMENT 2
#define ERROR 0
#define OK 1
class ConversionStack
{
public:
ConversionStack();
int clearstack();
int push(int e);
int pop();
void conversion();
int stackempty(ConversionStack S);
private:
int *base;
int *top;
int stacksize;
};
ConversionStack::ConversionStack()
{
base = (int *)malloc(STACK_INIT_SIZE * sizeof(int));
if(!base)
exit(ERROR);
top = base;
stacksize = STACK_INIT_SIZE;
}
int ConversionStack::clearstack()
{ //将栈置空
top = base;
}
int ConversionStack::push(int e)
{
if(top - base == stacksize) //栈满
{
base = (int *)realloc(base,(stacksize + STACK_INCREMENT)*sizeof(int)); //追加存储空间
if(!base)
exit(ERROR);
top = base + stacksize;