1.栈的定义和特点
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈(push)、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(pop),它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
2.顺序栈(数组型)的实现
首先我们定义一个全局的整型数组,基于此数组来进行栈的相关操作。直接上清晰简单的代码。
预处理:
#include<stdio.h>
int A[MAX_SIZE];//创建一个全局的整型数组
#define MAX_SIZE 101//宏定义数组的大小 101
int top=-1;//空栈,虚构索引-1
push操作:
void Push(int x){
if(top==MAX_SIZE -1){
printf("Error:stack overflow\n");
return ;
}
// top ++;
//A[top]=x;
A[++top]=x;//自增发生在赋值之前
}
pop操作:
void Pop(){
if (top==-1){
printf("Error:No element to pop\n");
return;
}
top--;
}
int Top(){
return A[top];//直接返回top索引处的值。
}
最后我们写一个print函数和主函数来测试一下。
void Print(){
int i;
printf("Stack: ");
for