数据结构之栈

 数据结构是计算机领域一个很重要的知识,往往只要是精心选择的数据结构可以提升运算速度和节约内存。
数据结构往往和高效的算法相关联。恰好这几天正在复习回顾数据结构这一块,我将我的心得分享给大家。
 栈是一种特殊的线性表,它的特殊在于只允许在表的一端进行插入(入栈)和删除(出栈)。!![栈遵循先进后出的规则这个正好和队列相反(队列遵循先进先出)](https://img-blog.csdnimg.cn/20190227110648505.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTE1MTIxMA==,size_16,color_FFFFFF,t_70)

具体实现代码如下:
#include
#define maxSize 5
using namespace std;
//栈类
class Stack {
private:
int top;
int data[maxSize];
int maxRoom;
public:
Stack();
~Stack();
bool ifEmpty();//判断是否为空
bool ifFull();//判断是否为满;
int pushData(int value);//入栈
int daleteData();//出栈
int dalation();//扩容
int pritf();//打印
};
//具体函数的实现
Stack::Stack() { top = -1; maxRoom = maxSize; }
Stack::~Stack() {}
//判断栈是否是空栈
bool Stack::ifEmpty()
{
if (top == -1)
return true;
else
return false;
}
//判断栈是否没有空间了
bool Stack::ifFull()
{
if (top == (maxRoom - 1))
return true;
else
return false;
}
//入栈
int Stack::pushData(int value)
{
if (ifFull())
{
//扩大空间
dalation();
top = top + 1;
data[top] = value;
}
else if (!ifFull())
{
top = top + 1;
data[top] = value;
}
return 0;
}
//出栈
int Stack::daleteData()
{
if (ifEmpty())
{
cout << “该栈为空栈.” << endl;
}
else if (!ifEmpty())
{
top = top - 1;
}
return 0;
}
//若空间已满此时开辟空间(加一个容量)
int Stack::dalation()
{
maxRoom = maxSize;
maxRoom = maxSize + 1;
int *data = new int[maxRoom];
return 0;
}
//打印(遵循先进后出的原则)
int Stack::pritf()
{
for (int i = top; i >= 0; i–)
{
cout << data[i] << endl;
}
return 0;
}
int main()
{
Stack access;
access.pushData(5);
access.pushData(4);
access.pushData(3);
access.pushData(2);
access.pushData(1);
access.pushData(0);
access.pritf();
access.daleteData();
access.pritf();
system(“pause”);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值