因为这是我们老师要求做的题目,所以我做完了以后就像分享给大家,希望对大家可以有帮助,有错误也希望大家可以指出。
源代码如下:
#include<iostream>
using namespace std;
typedef struct node {
int data;
struct node* next;
}StackNode,*LinkStack;
void create(LinkStack& S) {//初始化
S = NULL;
}
void Push(LinkStack& S, int e) {//入栈
LinkStack p = new StackNode;
p->data = e;
p->next = S;
S = p;
}
void allout(LinkStack& S) {//全部输出
LinkStack p = new StackNode;
p = S;
cout << "栈的数据是(先进入后输出):" << endl;
while (p) {
cout << p->data << endl;
p = p->next;
}
}
void pankong(LinkStack& S) {//判空
LinkStack p = new StackNode;
p = S;
if (p == NULL) {
cout << "该链栈为空" << endl;
}
else
cout << "该链栈不为空" << endl;
}
int main()
{
LinkStack S;
create(S);
int a[] = { 1,3,5,7,9,11 };
int length = sizeof(a) / sizeof(int);//计算数组a的长度
pankong(S);
for (int i = 0; i < length; i++) {
Push(S, a[i]);
}
allout(S);
pankong(S);
return 0;
}
运行结果如下: