一.描述
从键盘输入一行字符,进入链栈,以回车符结束.通过链栈的出栈操作实现该行字符的反向输出.
二.代码部分
2.1 stacklist.h头文件
#pragma once
#include<iostream>
using namespace std;
typedef struct listStack {
char data;
struct listStack * next;
}listStack;
//入栈操作
listStack* push(listStack * stack, char a) {
listStack * line = (listStack*)malloc(sizeof(listStack));
line->data = a;
line->next = stack;
stack = line;
return stack;
}
//出栈操作
listStack * pop(listStack * stack) {
if (stack) {
listStack * p = stack;
stack = stack->next;
cout << p->data;
if (stack == NULL) {
cout << endl;
printf("栈已空\n");
}
free(p);
}
else {
printf("栈内没有元素");
return stack;
}
return stack;
}
//取得栈顶元素
char top(listStack* stack) {
char ele;
listStack* p;
p = stack;
if (!p) {
cout << "栈已空" << endl;
return 0;
}