c++实现栈-创新互联
栈的概念
成都创新互联主营洪洞网站建设的网络公司,主营网站建设方案,重庆App定制开发,洪洞h5微信小程序开发搭建,洪洞网站营销推广欢迎洪洞等地区企业咨询栈是数据结构中一种特殊的线性表,它的基本特性是“先入后出,后入先出”。如下图:
栈的基本操作
栈有基本操作如下:
void Push(const T& d);//入栈
void Pop();//出栈
T& Top();//返回栈顶元素
bool Empty();//判断是否为空栈
size_t Size();//栈中元素个数
栈的实现
Stack.hpp
#pragma once
#include
using namespace std;
template
class Stack
{
public:
Stack();
~Stack();
Stack(const Stack
Stack
void Push(const T& d);
void Pop();
T& Top();
bool Empty();
size_t Size();
protected:
void _CheckCapacity();
protected:
T* _a;
size_t _top;
size_t _capacity;
};
template
void Stack
{
if (_a == NULL)
{
_capacity = 3;
_a = new T[_capacity];
return;
}
if (_top == _capacity)
{
_capacity += 3;
T* tmp = new T[_capacity];
for (size_t i = 0; i < _top; i++)
{
tmp[i] = _a[i];
}
delete[] _a;
_a = tmp;
}
}
template
Stack
:_a(0)
, _top(0)
, _capacity(0)
{}
template
Stack
{
if (_a)
{
delete[] _a;
}
}
template
Stack
:_top(s._top)
,_capacity(s._capacity)
{
_a = new T[_capacity];
for (size_t i = 0; i < _top; i++)
{
_a[i] = s._a[i];
}
}
template
Stack
{
swap(s._a,_a);
_top = s._top;
_capacity = s._capacity;
return *this;
}
//template
//Stack
//{
// if (this != &s)
// {
// delete[] _a;
// _capacity = s._capacity;
// _top = s._top;
// _a= new T[_capacity];
// for (size_t i = 0; i < _top; i++)
// {
// _a[i] = s._a[i];
// }
// }
// return *this;
//}
template
void Stack
{
_CheckCapacity();
_a[_top++] = d;
}
template
void Stack
{
if (_top)
{
--_top;
}
}
template
T& Stack
{
return _a[_top - 1];
}
template
bool Stack
{
if (_top == 0)
return true;
else
return false;
}
template
size_t Stack
{
return _top;
}
//test.cpp
#include "Stack.h"
#include
int main()
{
Stack
s.Push("1111111111111");
s.Push("2222222222222");
s.Push("3333333333333");
s.Push("4444444444444");
s.Push("5555555555555");
Stack
Stack
s2 = s;
while (!s2.Empty())
{
cout << s2.Top() << " ";
s2.Pop();
}
getchar();
return 0;
}
运行结果:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:c++实现栈-创新互联
文章URL:http://ybzwz.com/article/cdohic.html