C++实现顺序栈类
2012-10-24 16:17
357 查看
堆栈(英文:stack),也可直接称栈。在计算机科学中,栈是一种特殊的串行形式的数据结构,它的特殊之处在于只能允许在链结串行或阵列的一端(称为堆栈顶端指标,英文为top)进行加入资料(push)和输出资料(pop)的运算。
另外堆栈也可以用一维阵列或连结串行的形式来完成。
由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。
堆栈数据结构使用两种基本操作:推入(push)和弹出(pop)。
源文件以及测试代码
另外堆栈也可以用一维阵列或连结串行的形式来完成。
由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。
堆栈数据结构使用两种基本操作:推入(push)和弹出(pop)。
源文件以及测试代码
#include "sq_stack.h" #include <iostream> using namespace std; template <class DataType> sq_stack<DataType>::sq_stack() { base = new DataType[STACK_INIT_SIZE]; if(!base) exit(1); top=base; stacksize=STACK_INIT_SIZE; } template <class DataType> void sq_stack<DataType>::Push(DataType e) { if(top-base>=stacksize-1){ base=(DataType*)realloc(base,(stacksize+STACKINCREMENT)*sizeof(DataType)); if(!base) exit(1); top=base+stacksize-1; stacksize+=STACKINCREMENT; } *top++=e; } template <class DataType> void sq_stack<DataType>::Pop() { if(top==base) exit(1); top--; } template <class DataType> DataType sq_stack<DataType>::Top() { if(top==base) return NULL; return *(top-1); } template <class DataType> bool sq_stack<DataType>::Empty() { return top==base? 1:0; } template <class DataType> sq_stack<DataType>::~sq_stack() { if(base) free(base); top = base = NULL; stacksize = 0; } int main() { sq_stack<int> st; for(int i=1;i<=20;i++) st.Push(i); for(int i=1;i<=20;i++) { cout<<st.Top()<<" "; st.Pop(); if (i%5 == 0){cout<<endl;} } system("pause"); return 0; }
相关文章推荐
- C++ 顺序栈类实现
- C++实现顺序栈
- 线性表的顺序表示实现-C++版
- 顺序栈的C++的实现
- C/C++函数参数的入栈顺序,计算顺序和可变参数的实现
- c++之栈的顺序表实现
- c++实现顺序表
- C++ 顺序栈的实现
- c++ 实现动态顺序表(拷贝构造 赋值运算符重载等操作)
- C++实现静态顺序表的增删查改
- 判断出栈顺序是否正确,c++实现
- C++实现顺序表
- 顺序表创建以及查找排序算法(含有顺序查找算法、带哨兵站顺序查找、折半查找算法、冒泡排序)的C++实现在vs2013环境下实现
- C++基于模板顺序表的实现(带排序)
- 顺序表(c++实现)
- 线性表的顺序表示实现-C++版
- 顺序栈的定义、初始化、出栈、入栈等操作 C++代码实现
- 顺序表功能实现c++
- c++ 实现动态顺序表(拷贝构造 赋值运算符重载等操作)
- 数据结构(3)线性表之顺序表C++实现