#include <stdio.h>
//聲明一個棧 節點
#define STACK_SIZE 100
typedef struct Node
{
int top;//棧頂
int array[STACK_SIZE];//容量
}Stack;
Stack s;//定義了一個棧類型
//聲明幾個函數
//初始化一個棧
int initStack(void);
//判斷是不是空棧
int isEmpty(void);
//壓棧 入棧
int pushStack(int num);
//談棧 出棧
int popStack(void);
//菜單
void menu(void);
//函數實作
int popStack(void)
{
s.top--;
return s.array[s.top+1];//傳回該元素的值
}
int pushStack(int num)
{
//把一個資料存儲到棧中
s.top++;
s.array[s.top] = num;
return s.top;
}
int initStack(void)
{
s.top = 0;//棧頂置成0 表示空棧
return 1;
}
int isEmpty(void)
{
//判斷s.top 是不是0 是0為空
if(s.top == 0)
return 1;//真
else
return 0;//假
}
int main(int argc, const char * argv[])
{
//初始化一下棧
int temp = 0;//儲存取出來的值
initStack();
int a = isEmpty();
if(a)
{
printf("是空棧!\n");
//入棧 存儲資料
for(int i = 0;i < 10;i++)
{
//使用pushSrtack入棧操作
pushStack(i);
}
}
//取值
for(int j=0;j<10;j++)
{
temp = popStack();
printf("%d\n",temp);
}
return 0;
}