#include "iostream"
#define MAXSIZE 100
#define ERROR 1
#define OK 2
using namespace std;
typedef int SElemType;
typedef int Status;
typedef struct
{
SElemType *top;
SElemType *base;
int Stacksize;
}Sqstack;
Status InitStack(Sqstack &S)
{
S.base=new SElemType;
if(!S.base)return ERROR;
S.top=S.base;
S.Stacksize=MAXSIZE;
return OK;
}
Status Push(Sqstack &S,SElemType e)
{
if(S.top-S.base==S.Stacksize)return ERROR;
*S.top=e;
*S.top++;
return OK;
}
Status Pop(Sqstack &S,SElemType &e)
{
if(S.base==S.top)return ERROR;
*S.top--;
e=*S.top;
return OK;
}
Status judegeNull(Sqstack &S)
{
if(S.top==S.base)
{
cout<<"这个栈为空!"<<endl;
}
}
Status judegeFull(Sqstack &S)
{
if(S.top-S.base==S.Stacksize)
{
cout<<"这个栈为满!"<<endl;
}
}
Status Conversion(Sqstack &S,int N)
{
InitStack(S);
while(N)
{
Push(S,N%2);
N=N/2;
}
while(S.top!=S.base)
{
SElemType e;
Pop(S,e);
cout<<e;
}
}
int main()
{
Sqstack S;
int i,n;
InitStack(S);
cout<<"将1000转换为二进制数:";
Conversion(S,1000);
}
06-05
1018
05-21
3389