链式栈的思想和创建一个带头指针的链式线性表的思想非常相似,头指针指向栈顶指针。实现链式栈的创建空栈、入栈、出栈、遍历
还有查找之类的功能可以在理解下面这些代码的思路之后非常容易写出!
C++实现代码如下:
//StackNode.h
#pragma once
#include<iostream>
using namespace std;
class StackNode {
public:
char value;//值
StackNode* next;
StackNode(char value){
this->value = value;
this->next = NULL;
}
//遍历链式栈
void outStack();
//创建一个空栈
void initStack(StackNode* s);
//入栈
void push(char value);
//出栈
void pop();
};
//遍历
void StackNode::outStack() {
StackNode* p = this->next;
while (p != NULL) {
cout << p->value << " ";
p = p->next;
}
cout << "全部输出完毕" << endl;
}
//初始化
void StackNode::initStack(StackNode* s) {
s->next = NULL;
cout << "创建空栈成功!" << endl;
}
//入栈
void StackNode::push(char value) {
//将值为value压入链式栈中
//创建一个新的节点
StackNode* p