#include<iostream>
using namespace std;
#define Size 100
typedef struct stack
{
char s[Size];
int top;
}Stack;
void Initiate(Stack *a)
{
a->top=0;
}
//入栈成功返回1,否则返回0
int StackPush(Stack *a,char x)
{
if(a->top>=Size)
{
cout<<"the stack is full"<<endl;
return 0;
}
else
{
a->s[a->top]=x;
a->top++;
return 1;
}
}
//出栈,并由d带回值
int StackPop(Stack *a,char *d)
{
if(a->top<=0)
{
cout<<"the stack is empty"<<endl;
return 0;
}
else
{
a->top--;//
*d=a->s[a->top];
return 1;
}
}
//取栈顶元素,并由形参d带回值
int StackGet(Stack *a,char *d)
{
if(a->top<=0)
{
cout<<"the stack is empty"<<endl;
return 0;
}
else
{
a->top--;
*d=a->s[a->top];
a->top++;
return 1;
}
}
void main()
{
Stack stack1;
Initiate(&stack1);
StackPush(&stack1,'p');
StackPush(&stack1,'j');
StackPush(&stack1,'f');
StackPush(&stack1,'w');
char p;
StackPop(&stack1,&p);
cout<<"the top :"<<p<<endl;
StackGet(&stack1,&p);
cout<<"get top element:"<<p<<endl;
system("pause");
}
如何实现堆栈
最新推荐文章于 2024-08-29 11:38:14 发布