#include <stdio.h>
#include "stack.h"
void dtob(int n)
{
stack s;
init(&s);
while(n!=0)
{
push(&s, n%2);
n/=2;
}
while(!isEmpty(&s))
{
printf("%d",pop(&s));
}
printf("\n");
}
void main()
{
dtob(56);
}
//stack.h
#define MAX 100
typedef struct
{
int data[MAX];
int top;
}stack;
/*初始化栈,把指针置于栈顶*/
void init(stack *s)
{
s->top=0;
};
/*判断栈是否为空
栈为空返回1
栈不为空返回0
*/
int isEmpty(stack *s)
{
if(s->top == 0)
return 1;
else
return 0;
}
/*向栈中压入一个值*/
void push(stack *s, int v)
{
if(s->top == MAX)
{
printf("stack is full!");
}
else
{
s->data[s->top] = v;
s->top++;
}
}
/*从栈中弹出一个值*/
int pop(stack *s)
{
if(isEmpty(s))
{
printf("stack is empty!");
return -1;
}
else
{
s->top--;
return s->data[s->top];
}
}