Hỏi về stack trong C
#include<stdio.h>
#include<stdlib.h>
const int MAX_ELEMENT=100;//So phan tu toi da cua stack la 100
typedef struct
{
int *data;
int top_idx;
}stack;
//Ham khoi tao stack rong
void init(stack *s);
void push(stack *s,int d);
int pop(stack *s);
int top(const stack *s);
int size(const stack *s);
int empty(const stack *s);
int size(const stack *s);
int full(const stack *s);
void clear(stack *s);
int main()
{
int n, bit;
stack s;
init(&s);
printf(“Nhap so nguyen n=”);
scanf("%d",&n);
while(n)
{
push(&s,n%2);
n/=2;
}
while(!empty(&s));
{
bit=top(&s);
pop(&s);
printf("%d",bit);
}
return 0;
}
void init(stack *s)
{
s->data=(int*)malloc(MAX_ELEMENT*sizeof(int));
s->top_idx=-1;
}
void clear(stack *s)
{
if(s->data!=NULL)
free(s->data);
s->top_idx=-1;
}
void push(stack *s,int d)
{
s->data[++s->top_idx]=d=(int )malloc(MAX_ELEMENT sizeof(int));
}
int pop(stack *s)
{
s->top_idx–;
}
int top(const stack *s)
{
return s->data[s->top_idx];
}
int size(const stack *s)
{
return s->top_idx+1;
}
int empty(const stack *s)
{
return (s->top_idx==-1)?(1):(0);
}
int full(const stack *s)
{
return (s->top_idx==MAX_ELEMENT-1)?(1):(0);
}
Mọi người giúp mình viết lệnh để xuất kết quả ra màn hình với ^^