b站 《数据结构与算法基础(青岛大学-王卓)》
所用教材《数据结构C语言版第二版》 中国工信出版集团 人民邮电出版社出版 严蔚敏 编著
#include<iostream>
using namespace std;
class ElemType {
public:
char name;
};
class StackNode {
public:
ElemType data;
StackNode* next; //链表不需要头结点,头指针就是栈顶
};
void InitStack(StackNode* S) //初始化链栈
{
S = NULL; //创造一个空栈,栈顶指针置为空
return;
}
bool EmptyStack(StackNode* S) //判断栈是否为空,为空就返回true,反之则返回false
{
if (S == NULL) {
return true;
}
return false;
}
void push(StackNode*& S, ElemType e) //入栈
{
StackNode* P = new StackNode;
P->next = S;
P->data = e;
S = P;
}
int pop(StackNode*& S, ElemType& e) //出栈
{
if (S == NULL)
return 1;
e = S->data;
StackNode* p = S;
S = S->next;
delete p;
}
ElemType GetTop(StackNode* S) //取栈顶元素
{
if (S != NULL)
return S->data;
else
cerr << "S为空栈";
}