View Code #include <stdio.h>
typedef struct
{
int stack[100];
int top;
}seqstack;
void stackinitiate(seqstack *s)
{
s->top=0;
}
int stacknotempty(seqstack s)
{
if (s.top<=0) return 0;
else return 1;
}
void stackpush(seqstack *s,int x)
{
s->stack[s->top]=x;
s->top++;
}
void stackpop(seqstack *s,int *x)
{
s->top--;
*x=s->stack[s->top];
}
void stacktop(seqstack *s,int *x)
{
*x=s->stack[s->top-1];
}
int main()
{
seqstack mystack;
int i,x;
stackinitiate(&mystack);
for (i=0;i<10;i++)
stackpush(&mystack,i+1);
stacktop(&mystack,&x);
printf("当前栈顶数据元素为:%d\n",x);
while (stacknotempty(mystack))
{
stackpop(&mystack,&x);
printf("%d ",x);
}
printf("\n");
return 0;
typedef struct
{
int stack[100];
int top;
}seqstack;
void stackinitiate(seqstack *s)
{
s->top=0;
}
int stacknotempty(seqstack s)
{
if (s.top<=0) return 0;
else return 1;
}
void stackpush(seqstack *s,int x)
{
s->stack[s->top]=x;
s->top++;
}
void stackpop(seqstack *s,int *x)
{
s->top--;
*x=s->stack[s->top];
}
void stacktop(seqstack *s,int *x)
{
*x=s->stack[s->top-1];
}
int main()
{
seqstack mystack;
int i,x;
stackinitiate(&mystack);
for (i=0;i<10;i++)
stackpush(&mystack,i+1);
stacktop(&mystack,&x);
printf("当前栈顶数据元素为:%d\n",x);
while (stacknotempty(mystack))
{
stackpop(&mystack,&x);
printf("%d ",x);
}
printf("\n");
return 0;
本文介绍了使用C语言实现的基本栈操作,包括初始化、检查是否为空、压栈、弹栈和获取栈顶元素的方法。


被折叠的 条评论
为什么被折叠?



