c++ 顺序栈的各种操作(进栈出栈)

#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;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值