栈应用举例
Dakuan_chen
这个作者很懒,什么都没留下…
展开
-
简单的文本行编辑程序——基于栈
一个简单的行编辑程序的功能是:接受从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入是,不能保障不出差错,因此,若在编辑程序中,“每接收一个字符立即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行数据,然后逐行存入用户数据区。允许用户输入出现差错,并在发现有误是可以及时更正。比如当用户发现上一个字符是错的可以输入#表示上一个字符无效,原创 2017-04-17 21:28:56 · 3854 阅读 · 0 评论 -
十进制转换为二进制 八进制 ——用栈实现
数制转换有很多方法本文用的是用栈来实现栈有先进后出的特性利用这个特性可以实现将目标数取模的值存放在栈中最后一次出栈就可以得到转换好的数void NumberConvert(int num ,int dest) { if (2 == dest) { stack<int> s; while (num) { int n原创 2017-04-17 21:10:48 · 893 阅读 · 0 评论 -
括号匹配问题——用栈实现
一个字符串中的括号的不匹配分为左括号多,右括号多或者次序问题在检测一个字符串中的字符如果是括号并且是左括号将它入栈,如果是右括号判断与栈顶元素是否匹配如果匹配将栈顶元素出栈如果不匹配返回false并输出括号次序不匹配。当栈为空且字符串没有遍历完时返回false输出右括号多于左括号,当字符串遍历完时栈不为空则返回false输出左括号多于右括号。只有当栈为空且遍历完字符串时括号才匹配bool IsBra原创 2017-04-18 12:41:59 · 1084 阅读 · 0 评论 -
用两个栈实现一个队列
队列的特性是先进先出,栈是先进后出基于这种特性可以用一个辅助栈用于在pop和front是的操作其他的操作都可以用一个栈实现 在pop或front时将数据逐个出栈并且入到辅助栈中此时辅助栈的栈顶就是需要pop或front的元素之后再将元素放回原来的栈 在pop或front时 完成后将元素放入原栈template<typename T> class Queue { public:原创 2017-04-18 18:01:04 · 264 阅读 · 0 评论