当前位置: 首页> 汽车> 新车 > 商业网页设计培训_南宁seo站内关键词优化_链交换_网站推广网站

商业网页设计培训_南宁seo站内关键词优化_链交换_网站推广网站

时间:2025/8/27 2:10:14来源:https://blog.csdn.net/x3477144355/article/details/144411799 浏览次数: 1次
商业网页设计培训_南宁seo站内关键词优化_链交换_网站推广网站

当我还是初学者的时候,我经常思考有没有比慢慢求每一位数字然后考虑正序,逆序输出要快的办法...长期琢磨,必有所获!

我刚学数据结构的时候还没意识到栈,队列还能这样用,虽然说有点杀鸡用牛刀的感觉,但是这样确实可以加深对栈和队列理解与运用。

开始:

比如输入1234000,顺序输出为1 2 3 4 0 0 0,逆序输出为0 0 0 4 3 2 1

我们知道每次获取最后一位数字的难度是最低的,所以我们就每次将最末尾的数字存放到栈或者队列里就行了。

对于栈,如果按照上面的方式存储就是顺序输出,栈是先进后出,进入就是0 0 0 4 3 2 1 ,而每次弹栈就是输出最上面的那个,就是1 2 3 4 0 0 0,每次弹栈之后删除栈顶元素就行了

对于队列,如果按照上面的方式存储就是逆序输出,队列是先进先出,进入就是0 0 0 4 3 2 1,而每次队头先出来,就是0 0 0 4 3 2 1,每次出队之后删除队首元素就行了

代码实现:

#include<iostream>
#include<stack>//调用栈的头文件
#include<queue>//调用队列的头文件
using namespace std;
int main(){stack<int> s;//创建一个栈cout << "栈" << endl; int n;cin >> n;//输入数字while(n>0){s.push(n%10);//压栈(存放元素)push()n /= 10;}while(!s.empty()){//判空,如果不是空的就继续输出cout << s.top() << " ";//输出栈顶元素,top()s.pop();//删除栈顶元素,pop()}cout << endl << "队列" << endl;queue<int> q;//创建一个队列cin >> n;while(n>0){q.push(n%10);//进队n/=10;}while(!q.empty()){//判空,如果不是空的就继续输出cout << q.front() << " ";//输出队首元素q.pop();//删除队首元素}return 0;
} 

 以上就是我对灵光乍现的代码实现 ,芜湖芜湖~~~

到这里就结束啦!!!

欢迎小伙伴们评论区讨论,提问。

我是荒古前,期待你的关注~~~

~~~完结撒花✌y( •̀ ω •́ )y✌~~~

关键字:商业网页设计培训_南宁seo站内关键词优化_链交换_网站推广网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: