顺序栈,C++基本实例应用
2015-11-26 21:17
387 查看
还是想自己写写,一来大家可以批评,二来可以监督自己的学习!
参考书目:数据结构(C++描述)胡学钢 人民邮电出版社
栈的基本应用:顺序栈,应用实例,便于理解,没有过多的细节处理。
输入一组数,反序输出。
dataType getTopData(dataType &varial);函数如果去掉&符,运行结果就会出现问题,涉及到了地址的问题。用传址的方式改变变量的值,很多书都讲过这个问题。
多有不足,希望指导!
参考书目:数据结构(C++描述)胡学钢 人民邮电出版社
栈的基本应用:顺序栈,应用实例,便于理解,没有过多的细节处理。
输入一组数,反序输出。
/************************************************************************/ /* author:冒失的鱼*/ /************************************************************************/ #include <iostream> #include <stdio.h> typedef int dataType; #define MaxSize 50 class stack { public: stack(); bool full()const; bool empty()const; dataType getTopData(dataType &varial); void pop(); void push(const dataType varial); private: int count; dataType data[MaxSize]; }; stack::stack() { count = 0; } bool stack::full()const { if(MaxSize == count) return true; return false; } bool stack::empty()const { if(0 == count) return true; return false; } dataType stack::getTopData(dataType &varial) { if (empty()) std::cout<<"Underflow"; varial = data[count-1]; return varial; } void stack::pop() { if (empty()) std::cout<<"Underflow"; --count ; } void stack::push(const dataType varial) { if (full()) std::cout<<"Overflow"; data[count] = varial; count ++; } int main() { stack sta; int n=0,x=0; std::cout<<"Please input number:"; std::cin>>n; for (int i=1;i<=n;i++) { std::cin>>x; sta.push(x); } while (sta.empty()!=true) { //std::cout<<sta.getTopData(x); sta.getTopData(x); std::cout<<x; sta.pop(); } return 0; }
dataType getTopData(dataType &varial);函数如果去掉&符,运行结果就会出现问题,涉及到了地址的问题。用传址的方式改变变量的值,很多书都讲过这个问题。
多有不足,希望指导!
相关文章推荐
- C++内存分配原则方法
- c++11使用 async异步函数并传递参数以及auto的使用方法
- C++指针与引用(二):常用const指针,增强程序的健壮性
- C++设计模式[二十]策略模式
- 【程序设计基础_C语言】北理工的恶龙
- C语言基础第三篇--控制语句
- C++primer__泛型算法-泛型算法结构
- 浅谈C/C++的time_t函数
- 链表保存学生信息
- C++指针与引用(一):函数传参,是该传对象,还是传指针,抑或是引用
- C++设计模式[十九]状态模式
- c++11 async启动异步任务的使用方法
- c++11future简单使用及介绍
- C语言练习作业(五)
- 【C语言】单链表的排序
- 【C语言】查找链表的中间节点及倒数第K个节点
- 【C语言】单链表的逆置
- 有趣的单精度浮点数(float)
- 【C语言】两个有序单链表的合并
- C++学习之模板:模板重载