typedef struct LNode{
int data;
struct LNode *next;
}LNode;
//链栈的初始化
void initStack(LNode *&lst){
lst = (LNode *)malloc(sizeof(LNode));
lst->next = NULL; //结点申请后一定要指向空
}
//判断栈空
int isEmpty(LNode *lst){
return lst->next = NULL;
}
//进栈
void push(LNode *lst, int x){
//步骤一:申请新的节点,存放x
//步骤二:头插法将新的节点插入链栈中
LNode *p = (LNode *)malloc(sizeof(LNode));
p->next = NULL;
p->data = x;
p->next = lst->next;
lst->next = p;
}
//出栈
int pop(LNode *lst, int &x){
//步骤一:判空
//步骤二:删除节点
if(lst->next == NULL)
return 0;
x = lst->data;
LNode *p;
p = lst->next;
lst->next = lst->next->next;
free(p);
return 1;
}
【数据结构——栈和队列】链栈的基本操作
最新推荐文章于 2024-05-31 19:04:21 发布