typedef struct stack_mg{
unsigned int stack_count; // 棧的包含的數值
int struct stack_t *top; // 指向棧頂的位置
}Stack_mg_t;
//利用鏈表作爲棧空間的節點數據結構,棧大小不受限
typedef struct stack_t {
unsigned int value; // 棧的值
int struct stack_t *next; // 棧的下一個節點
}Stack_node;
/* PUSH 操作 */
void push_stack(Stack_mg_t *stack, int data)
{
if(NULL == stack)
{
return;
}
Stack_node *node = malloc(sizeof(Stack_node));
node->value = data;
node->next = stack->top;
stack->top = node;
stack->stack_count++;
}
/* POP 操作 */
void pop_stack(Stack_mg_t *stack)
{
if(NULL == stack||NULL == stack->top)
{
printf("Invalid\n");
return;
}
Stack_node *node = stack->top;
printf("%ld\n", node->value);
stack->top = stack->top->next;
free(node);
node = NULL;
}
int main()
{
Stack_mg_t stack;
memset(&stack,0,sizeof(Stack_mg_t));
}