利用數組實作線性表的資料存儲
//線性存儲的棧的入棧和出棧
#include <iostream>
using namespace std;
#define MAX_SIZE 100//堆棧的容量
typedef struct SqStack
{
int data[MAX_SIZE];
int top;//用于指向棧頂元素的下标
}SqStack;
//建立一個空棧
SqStack* CreateEmptyStack()
{
SqStack *s=(SqStack*)malloc(sizeof(SqStack));
s->top=-1;
return s;
}
//入棧
SqStack* PushStack(SqStack *s,int data)
{
s->data[++(s->top)]=data;
return s;
}
//出棧
SqStack* PopStack(SqStack *s)
{
//檢測堆棧内是否有元素
if (-1==s->top)
{
cout<<"The stack is empty!"<<endl;
}
int data=s->data[(s->top)--];
cout<<data<<"->";
return s;
}
int main()
{
SqStack *s=CreateEmptyStack();
for (int i=1;i<=10;i++)
{
s=PushStack(s,i);
}
for (int i=1;i<=10;i++)
{
PopStack(s);
}
return 0;
}