首页 / C++ / C++实现stack【栈】
C++实现stack【栈】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++实现stack【栈】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1820字,纯文字阅读大概需要3分钟。
内容图文
要求:
//****file: stack.h
/*
对stack进行初始化
检查stack为空,或已满
将整数压入到stack中
从stack里弹出整数
不移除任何袁术,讲过stack的内容输出到标准输出
Stack类的私有成员如下:
一个用于打印错误信息的私有哦成员函数
三个私有数据成员构成了stack类的private实现,此实现为类接口提供支持。
*/
类的实现
1 #include <iostream> 2usingnamespace std; 3 4 5class Stack{ 6public : 7enum {MaxStack = 5}; 8//初始化栈,栈为空 9void init () {top = -1;} 1011void push (int n){ 12if (isFull()){ 13 errMsg("Full stack .cant push"); 14return ; 15 } 16 arr[++top ] =n; 17 } 1819int pop() { 20if (isEmpty () ){ 21 errMsg("Empty stack . Popping dummy value."); 22return dummy_val; 23 } 2425return arr[top-- ]; 26 } 27//检查statck是否为空 28bool isEmpty() {return top <0 ;} 29//检查stack是否已满 30bool isFull() {return top >= MaxStack - 1;} 3132//dump倾倒 , 按照从stack顶端到底端的次序,依次将Stack的内容输出到标准输出 33void dump () { 34for (int i = top; i >= 0; i--) 35 cout << ‘t‘ << arr[i] << ‘\n‘; 36 } 373839private : 40void errMsg(constchar * msg) const { 41 cerr << "\n*** Stack operation failure : "<< msg << ‘\n‘; 42 } 4344int top; 45int arr[ MaxStack ]; 46int dummy_val; 4748 };
测试代码如下:
#include <iostream> #include "stack.h"int main() { Stack s1; s1.init(); s1.push(9); s1.push(4); s1.dump(); cout << "Popping " << s1.pop() << ‘\n‘; s1.dump(); s1.push(8); s1.dump(); s1.pop();s1.pop(); s1.dump(); s1.pop(); s1.dump(); s1.push(3); s1.push(5); s1.dump(); for (unsigned i = 0; i <Stack::MaxStack; i++) s1.push(1); s1.dump(); return0; }
调试结果:
/* t4 t9 Popping 4 t9 t8 t9 *** Stack operation failure : Empty stack . Popping dummy value. t5 t3 *** Stack operation failure : Full stack .cant push *** Stack operation failure : Full stack .cant push t1 t1 t1 t5 t3 -------------------------------- Process exited with return value 0 Press any key to continue . . . */
原文:http://www.cnblogs.com/super90/p/4390873.html
内容总结
以上是互联网集市为您收集整理的C++实现stack【栈】全部内容,希望文章能够帮你解决C++实现stack【栈】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。