#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define TRUE 1
#define FALSE 0
#define STACK_INTE_SIZE 100
#define STACK_INCREMENT 10
typedef int StackElementType;
typedef struct
{
int top;
StackElementType elem[STACK_INTE_SIZE];
}SeqStack;
void InitStack(SeqStack *S)
{
S->top = -1;
}
//入栈
int Push(SeqStack *S,StackElementType x)
{
if( S->top == STACK_INTE_SIZE-1)
return (FALSE);
S->top++;
S->elem[S->top] = x;
return(TRUE);
}
//出栈
int Pop(SeqStack * S,StackElementType * x)
{
if(S->top == -1)
return (FALSE);
else
{
*x = S->elem[S->top];
S->top--;
return (TRUE);
}
}
//取栈顶元素
int GetTop(SeqStack *S, StackElementType *x)
{
if(S->top == -1)
{
return (FALSE);
}
else
{
*x = S->elem[S->top];
return (TRUE);
}
}
//遍历顺序栈
void PrintStack(SeqStack *S)
{
int i = S->top;
printf("\n打印栈元素:");
if(S->top == -1){
printf("空栈!");
}
while(i != -1){
printf("%d",S->elem[i--]);
}
}
int main(void){
SeqStack *S = (SeqStack *)malloc(sizeof(SeqStack));
InitStack(S);
Push(S,2);
Push(S,3);
Push(S,4);
PrintStack(S);
return 0;
}
【无标题】
最新推荐文章于 2024-10-16 10:13:45 发布