#include<iostream>
using namespace std;
const int MaxSize = 10;//确定静态链表的长度
typedef struct Node {
int data[MaxSize];//栈的数据空间
int top;//栈顶元素
}Stack;
void initStack(Stack&);
bool printStack(Stack&);
bool popStack(Stack&);
bool isEmptyStack(Stack&);
bool isFullStack(Stack&);
bool pushStack(Stack&);
int main()
{
Stack stack;
initStack(stack);
pushStack(stack);
printStack(stack);
popStack(stack);
printStack(stack);
return 0;
}
bool popStack(Stack& stack) {
if (isEmptyStack(stack)) {
printf("Stack is Empty!!!,Can't push data!!!");
return false;
}
printf("Start pop data to the Stack!\nPlease pop the data!\n");
if(stack.top != -1)
stack.top--;
return true;
}
bool printStack(Stack& stack) {
if (isEmptyStack(stack)) {
printf("Stack is Empty!!!,Can't print data!!!");
return false;
}
for (int i = 0; i <= stack.top; i++) {
printf("The data in position [%d] is %d\n", i, stack.data[i]);
}
return true;
}
bool isEmptyStack(Stack& stack) {
return stack.top == -1;
}
bool isFullStack(Stack& stack) {
return stack.top == MaxSize;
}
bool pushStack(Stack& stack) {
if (isFullStack(stack)) {
printf("Stack is Full!!!,Can't push data!!!");
return false;
}
printf("Start push data to the Stack!\nPlease input the data!:");
int data;
scanf_s("%d", &data);
printf("\n");
while (data != -9999 && stack.top < MaxSize - 1) {
int i;
stack.data[++stack.top] = data;
printf("Please input the data:");
scanf_s("%d", &i);
data = i;
printf("\n");
}
return true;
}
void initStack(Stack& stack) {
stack.top = -1;
}
c++ 顺序栈的各种操作(进栈出栈)
最新推荐文章于 2023-06-11 16:01:45 发布