博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Stack类实现。模板
阅读量:6079 次
发布时间:2019-06-20

本文共 1696 字,大约阅读时间需要 5 分钟。

  hot3.png

// Head.h#include 
using namespace std;#ifndef DEFAULT_STACK_SIZE#define DEFAULT_STACK_SIZE 1000#endif// end // iCoding@CodeLab//

 

 

 

// Stack.h#include "Head.h"template 
class Stack{ private: ElemType *data; int size; int bottom; int top; public: Stack (); void push (ElemType elem); ElemType pop (); bool is_empty (); bool is_full (); int get_size (); void expand_size ();};// end // iCoding@CodeLab//

 

#include "Stack.h"///// Stacktemplate 
Stack
::Stack (){ this->size = DEFAULT_STACK_SIZE; this->data = new ElemType[this->size+1]; this->bottom = 0; this->top = 0;}///// push template
void Stack
::push (ElemType elem){ if (is_full()) { expand_size (); } this->top++; this->data[this->top] = elem;}///// poptemplate
ElemType Stack
::pop (){ ElemType elem_top; elem_top = this->data[this->top]; this->top--; return elem_top;}///// is emptytemplate
bool Stack
::is_empty (){ return (this->bottom >= this->top);}///// is fulltemplate
bool Stack
::is_full (){ return (this->size <= this->top);}///// get size of Stacktemplate
int Stack
::get_size (){ return (this->top - this->bottom);}///// expand_sizetemplate
void Stack
::expand_size (){ ElemType* elem_data_tmp; elem_data_tmp = new ElemType[this->size+1]; for (int i = this->bottom + 1; i <= this->top; i++) { elem_data_tmp[i] = this->data[i]; } delete[] this->data; this->size += DEFAULT_STACK_SIZE; this->data = new ElemType[this->size+1]; for (int i = this->bottom + 1; i <= this->top; i++) { this->data[i] = elem_data_tmp[i]; }}// end // iCoding@CodeLab//

 

转载于:https://my.oschina.net/ism/blog/80785

你可能感兴趣的文章
工信部表示:建立网络数据安全管理体系 强化用户个人信息保护
查看>>
感受真实的华为-记山东CIO智库会员华为之行
查看>>
Spring的依赖注入概述
查看>>
为什么我的联想打印机M7450F换完墨粉之后打印机显示请更换墨粉盒?这是我的墨盒第一次灌粉&#183;、...
查看>>
命运多舛、前途未卜,共享经济年终盘点之网约车
查看>>
研究人员研制出可有效抑制艾滋病病毒的新药,可让病毒几乎检测不出来
查看>>
什么是区块链?超级账本 Brian Behlendorf 从五个方面教你认识
查看>>
独家揭秘:2017中国人工智能与机器人创新大会大咖云集
查看>>
聊聊Dubbo - Dubbo可扩展机制实战
查看>>
马斯克生日之际,特斯拉正式交付30辆顶配版Model 3
查看>>
Oracle DBA 增值 PostgreSQL,Greenplum 学习计划
查看>>
Appuploader的安装介绍
查看>>
附录B 安装MySql数据库
查看>>
设置为disabled不可用的表单元素的value值无法发送
查看>>
CentOS 6.5 ipesc下Openswan实现双IDC互联
查看>>
小谈React、React Native、React Web
查看>>
[原创]Camtasia Studio 6.0录制视频时鼠标闪烁的解决办法
查看>>
Android Activity 四种启动模式
查看>>
SQL Server 2014新特性——Buffer Pool扩展
查看>>
需求的陷阱
查看>>