如果说队列是先进先出,那么这个栈就是先进后出(就好比是桶装可比克,生产时机器将先生产好的放入桶中,我们购买了吃它的时候是从上边一片片的咪西)。之所以讲这么个例子,是因为栈是一个非常重要的数据知识(当然队列等同样重要哈哈),比如常听一些系统堆栈呀什么的,就是说的这玩意儿。
再有就是在栈里的存数据了,是不能查看数据的(就不能说什么遍历数据,显示出来了),只能返回其大小,原理就是同可比克,它是封装的,外界只能查看栈顶的数据!
栈的主要操作有:
- 查看栈顶数据(top)
- 进栈(push)
- 出栈(pop)
话不多说上代码~
头文件.h
#pragma once
#include<iostream>
using namespace std;
class MyStack
{
public:
MyStack(int Stacksize = 10); //设置默认大小为10
~MyStack();
bool IsEmpty()const;
int& Top()const;//获取栈顶数据
void Push();//进
void Pop();//出
void MyStackMenu();//菜单
int length();//返回栈的大小
void ChangSize(int*& a, const int oldSize, const int newSize);//动态扩充数组栈!
private:
int *Stack;//指向动态扩充的数组
int top;//栈顶下标
i