考研数据结构第三章栈的顺序存储定义操作及代码实现
1.初始化操作
void InitStack(SqStack &stack){
stack.top = -1;
}
2.判栈空操作
#define TRUE 1
#define FALSE 0
int StackEmpty(SqStack stack){
if(stack.top == -1)
return TRUE;
else
return FALSE;
}
3.进栈操作
int Push(SqStack &stack,ElemType x){
if(stack.top==MaxSize-1)
return FALSE;
stack.data[++stack.top]=x;
return TRUE;
}
4.出栈代码
int pop(SqStack &stack,ElemType &x){
if(stack.top==-1)
return FALSE;
x = stack.data[stack.top--];
return TRUE;
}
5.读栈顶元素
int GetTop(SqStack stack,ElemType &x){
if(stack.top==-1)
return FALSE;
x = stack.data[stack.top];
return TRUE;
}
完整代码
#include<iostream>
using namespace std;
typedef int ElemType;
#define MaxSize 50
typedef struct SqStack{
ElemType data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack &stack){
stack.top = -1;
}
#define TRUE 1
#define FALSE 0
int StackEmpty(SqStack stack){
if(stack.top == -1)
return TRUE;
else
return FALSE;
}
int Push(SqStack &stack,ElemType x){
if(stack.top==MaxSize-1)
return FALSE;
stack.data[++stack.top]=x;
return TRUE;
}
int pop(SqStack &stack,ElemType &x){
if(stack.top==-1)
return FALSE;
x = stack.data[stack.top--];
return TRUE;
}
int GetTop(SqStack stack,ElemType &x){
if(stack.top==-1)
return FALSE;
x = stack.data[stack.top];
return TRUE;
}
int main(){
return 0;
}