C++ 栈
来源:互联网 发布:nodejs python 前景 编辑:程序博客网 时间:2024/06/05 19:17
栈是顺序表或者单链表的一种特殊表现形式,也就是栈的基础是顺序表和单链表。栈是一种元素满足先进后出(LIFO)规则的线性表。这种要求也决定了栈的操作是在表尾(栈顶)进行。一般来说,我们将栈的表头称为栈底,将栈的表尾称为栈顶,向栈内添加元素,我们称为入栈(push),删除元素我们称为出栈(pop)。栈一旦形成,栈底的位置固定,没有任何元素的栈叫做空栈,随着元素的增加,栈顶指针会上移;随着元素的出栈,栈顶的指针会下移靠近栈底指针,当栈顶指针越过栈底时,栈清空位空栈。
template<typename datatype>class stack
{
public:
stack(int size)
{
maxsize=size;
top=-1;//初始化为空栈//
elements=new datatype[size];//分配空间//
}
~stack()
{
delete[]elements;
}
bool push(datatype data);//入栈函数//
datatype pop();//出栈函数//
private:
datatype *elements;
int top;
int maxsize;
}
入栈操作:
template<typename datatype>bool stack<datatype>::push(datatype data)
{
if(top==maxsize)//判断是否满栈//
return false;
elements[++top]=data;//++top是因为我们设top=-1//
return true;
}
出栈操作:
template<typename datatype>datatype stack<datatype>::pop()
{
if(top==-1)//判断是否空栈//
exit(1);
return elements[top--];//top--就是返回栈顶元素,同时top指向下一个元素//
}
- 栈(C#)
- C/C++:堆与栈
- [C/C++] 函数调用的栈分配
- 堆和栈的区别(C/C++)
- C++/C语言中链表队列与栈
- 【C/C++】堆和栈的区别
- 【C语言/C++】 栈和队列
- 【C/C++】堆和栈的区别
- 两个栈实现一个队列(C/C++)
- 数据结构(栈)c/c++/java实现
- 顺序栈(C#)
- NUnit--C#---栈---单元测试
- 栈(C语言)
- C数据结构 栈
- c实现顺序栈
- 四则运算 c/c++ 栈
- C语言算法:栈
- C语言--堆、栈
- 九度OJ 1138:进制转换 (进制转换)
- Java System性能监控
- 智能机器
- 1024程序猿节
- 快速幂算法模板
- C++ 栈
- HTML基础_01_基础标签
- c语言 常量
- 九度OJ 1139:最大子矩阵 (矩阵运算、缓存)
- cf 55c Pie or die
- __attribute_used__的作用
- hdu 4746 Mophues 莫比乌斯 分块优化
- g711u g711a 格式相互转换
- cf 75c Modified GCD