#include <stdlib.h>
typedef struct LSNode
{
int data;
struct LSNode* next;
}LSNode,*SNode;
typedef struct LSk
{
SNode top;
}LSk,*LStack;
void InitLStack(LStack LS)
{
if(LS==NULL)
{
LS=(LStack)malloc(sizeof(LSk));
}
LS->top=NULL;
}
int Peek(LStack LS)
{
return LS->top->data;
}
void Push(LStack LS,int value)
{
SNode p;
p=(SNode)malloc(sizeof(LSNode));
p->data=value;
p->next=LS->top;
LS->top=p;
}
int Pop(LStack LS)
{
SNode p;
int res;
p=LS->top;
if(p==NULL)
return -1;
res=p->data;
LS->top=p->next;
free(p);
return res;
}
int main()
{
LStack ls;
int i,res;
int num;
ls=(LStack)malloc(sizeof(LSk));
InitLStack(ls);
printf("Please input a number:");
scanf("%d",&num);
while(num)
{
Push(ls,num%2);
printf("%d is insert the stack/n",num);
num/=2;
}
res=Pop(ls);
while(res!=-1)
{
printf("%d",res);
res=Pop(ls);
}
printf("/n");
printf("Hello, world/n");
getch();
return 0;
}