#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NODE_LEN sizeof(NODE)
/*
(1)pStack->pTop、pStack->PBottom都指向节点
*/
typedef struct Node
{
int value;
struct Node * pNext;
}* PNODE, NODE;
typedef struct Stack
{
PNODE pTop;
PNODE PBottom;
}* PSTACK, STACK;
void init_stack(PSTACK pStack); //结构体变量地址赋值给结构体指针变量实现地址操作
void push_stack(PSTACK pStack, int value); //压栈
int main(void)
{
STACK stack; //定义结构体变量,分配内存
init_stack(&stack);
push_stack(&stack, 1);
return 0;
}
void init_stack(PSTACK pStack)
{
//新创建节点
PNODE pNew = (PNODE)malloc(NODE_LEN);
pNew->pNext = NULL; //新节点的指针域置空
pStack->pTop = pNew;
pStack->PBottom = pNew;
}
void push_stack(PSTACK pStack, int value)
{
//新创建节点
PNODE pNew = (PNODE)malloc(NODE_LEN);
pNew->value = value;
pNew->pNext = pStack->pTop;
pStack->pTop = pNew;
printf("压栈操作成功 \n");
}