2.2.2 栈堆地顺序存储实现
笔记: 定义数据结构{ int a[],int top}
push{}入栈
pop{}出栈
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define maxmath 20
struct snode
{
int top;
int data[maxmath];
};//定义结构
typedef struct snode *stack;//重命名
void push(stack ptrl,int item)
{
if(ptrl->top==maxmath-1)
{
printf("栈已满");
return;
}
else
{
ptrl->data[++(ptrl->top)]=item;
return;
}
}//入栈
int pop(stack ptrl)
{
if(ptrl->top==-1)
{
printf("栈已空");
return NULL;
}
else
{
return (ptrl->data[(ptrl->top)--]);
}
}//出栈
void show(stack ptrl)
{
for(int i=ptrl->top;i>-1;i--)
{
printf("%d",ptrl->data[i]);
}
}//打印
int main()
{
stack ptrl;
ptrl=(stack)malloc(sizeof(snode));
ptrl->top=-1;//初始化
void push(stack ptrl,int item);
int pop(stack ptrl);
void show(stack ptrl);//定义
push(ptrl,2);
push(ptrl,3);
push(ptrl,5);
pop(ptrl);
show(ptrl);//调试函数
free(ptrl);//释放内存空间
return 0;
}