#include <stdio.h>
typedef struct LinkNode
{
int data;
struct LinkNode *next;
}*LinkStack;
// 初始化栈
void InitStack(LinkNode &A)
{
A.next = NULL;
}
//头插法,栈顶元素是链表中第一个元素
void PushStack(LinkNode &A,int e)
{
LinkNode *p = new LinkNode;//创建新节点,malloc亦可
p->data = e;
p->next = A.next;
A.next = p;
}
int PopStack(LinkNode &A)
{
if(A.next == NULL)
{
return false;
}
LinkNode *p = A.next;//保存链栈中的第一个结点
A.next = p->next;//头指针指向第二个结点,实现top的移动
int e = p->data; //赋值操作
return e;
}
//输出
void PrintStack(LinkNode &A)
{
LinkNode *p = A.next;
printf("栈中的元素为:\n");
while(p)
{
printf("%d ",p->data);
p = p->next;
}
printf("\n");
}
链栈-代码
最新推荐文章于 2024-07-24 17:54:05 发布