每个二进制数转换成相应的十进制数方法如下:
(XnXn-1……X3X2X1)2 = X120+X2*21+…+Xn2^(n-1)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10
typedef char ElemType;
typedef struct
{
ElemType *top;
ElemType *base;
int stacksize;//指示栈当前最大可使用容量
}sqstack;
void Initstack(sqstack *s)
{
s->base=(ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType));
if(!s->base)
exit(0);
s->top=s->base;
s->stacksize=STACK_INIT_SIZE;
}
void push(sqstack *s,ElemType e)
{
if(s->top-s->base>=s->stacksize)
{
s->base=(ElemType *)realloc(s->base,(STACKINCREMENT+s->stacksize)*sizeof(ElemType));
if(!s->base)
exit(0);
s->top=s->base+s