【数据结构】一个数组实现两个栈
来源:互联网 发布:手机地图制作软件 编辑:程序博客网 时间:2024/06/05 20:12
一个数组实现两个栈有很多想法,我先写一种比较简单的,思路如下图所示:
代码如下:
#include<iostream>using namespace std;//一个数组实现两个栈template <class T>class arraystack{public : arraystack() { _array1 = new T[10]; _array2 = _array1 + 9; _size1 = 0; _size2 = 0; _capacity = 10; } void pusharray1(const T& x) { //判断数组是否已满 if( (_size1+_size2) < _capacity ) { _array1[_size1] = x; _size1++; } else cout<< "该栈已满"<<endl; } void pusharray2(const T& x) { if( (_size1+_size2) < _capacity ) { _array1[_capacity - _size2 - 1] = x; _size2++; } else cout<< "该栈已满"<<endl; } T& GetTop1() { return _array1[_size1 - 1]; } T& GetTop2() { return _array1[_capacity - _size2]; } void poparray1() { //空 // if(_size1 > 0) { _size1--; } else cout<< "该栈为空"<<endl; } void poparray2() { if(_size2 > 0) { _size2--; } else cout<< "该栈为空"<<endl; }private : T* _array1; T* _array2; int _size1; int _size2; int _capacity;};void Test1(){ arraystack< int> a1; a1.pusharray1 (1); a1.pusharray1 (2); a1.pusharray1 (3); a1.pusharray1 (4); a1.pusharray1 (5); cout<<a1.GetTop1 ()<<endl; a1.poparray1 (); cout<<a1.GetTop1 ()<<endl; a1.pusharray2 (10); a1.pusharray2 (9); a1.pusharray2 (8); a1.pusharray2 (7); a1.pusharray2 (6); cout<<a1.GetTop2 ()<<endl; a1.poparray2 (); cout<<a1.GetTop2 ()<<endl;}int main(){ Test1(); return 0;}
0 0
- 【数据结构】一个数组实现两个栈
- 【数据结构】 一个数组实现两个栈【面试】
- 数据结构--一个数组实现两个栈
- 【数据结构】一个数组实现两个栈
- 【数据结构】栈面试题--一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- ~一个数组实现两个栈~
- 一个数组实现两个栈
- 一个数组实现两个栈
- Android 5.x Theme 与 ToolBar
- java中点画线法——画椭圆
- android click事件中获取 Button文本 从一个按钮开关中获取文本
- 第二块:******Oracle 数据库实例启动关闭过程******
- 如何使用Github?
- 【数据结构】一个数组实现两个栈
- 如何在新浪云SAE创建JAVA/Android移动应用服务器
- JAVA的堆排序
- android解析xml (pull)
- 【软考10】计算机网络基础知识拾遗
- ENVI5.1 从Landsat5数据学习大气纠正
- VB的基本使用2
- linux jni 实现JAVA与C 通讯
- 我为什么很想学习