#pragma once
/* ==============================================================================
==============================================================================
LinkedList Stack
============================================================================== */
typedef int Data;
typedef struct _node
{
Data data;
struct _node * next;
}Node;
typedef struct _listStack
{
Node * head;
}ListStack;
typedef ListStack Stack;
void StackInit(Stack * pStack);
int SIsEmpty(Stack * pStack);
void SPush(Stack * pStack, Data data);
Data SPop(Stack * pStack);
Data SPeek(Stack * pStack);
/* ==============================================================================
==============================================================================
Array Stack
============================================================================== */
/*
#define STACK_LEN 100
typedef int Data;
typedef struct _arrayStack
{
Data stackArray[STACK_LEN];
int topIndex;
}ArrayStack;
typedef ArrayStack Stack;
void StackInit(Stack * pStack);
int SIsEmpty(Stack * pStack);
int SIsFull(Stack * pStack);
void SPush(Stack * pStack, Data data);
Data SPop(Stack * pStack);
Data SPeek(Stack * pStack);
*/