news 2026/7/11 21:13:48

数据结构:栈和队列的应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构:栈和队列的应用

根据数据结构的书整合以下代码,可运行,若有错误请大家谅解,也欢迎大家指出,谢谢大家。

以分别是栈和队列的应用:

1.数制转换;

2.括号匹配;

3.汉诺塔问题;

一,数制转换

#include<iostream>

#include<stack>

using namespace std;

void BaseConvert(int num, int R)

{

stack<int> st;

char ch[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

if(num == 0)

{

cout << "0";

return;

}

while(num != 0)

{

st.push(num % R);

num = num / R;

}

cout << "转换结果:";

while(!st.empty())

{

cout << ch[st.top()];

st.pop();

}

cout << endl;

}

int main(){

int N,r;

cout<<"输入一个十进制的整数";

cin>>N;

cout<<"输入目标进制";

cin>>r;

if(r<2||r>16){

cout<<"输入错误";

return 1; }

BaseConvert(N,r);

return 0;}

二,括号匹配

r#include<iostream>

#include<stack>

#include<string>

using namespace std;

bool BracketMatch(string s)

{

stack<char> st;

for(int i=0;i<s.length();i++)

{

char c=s[i];

if(c == '(' || c == '[' || c == '{')

st.push(c);

else

{

if(st.empty()) return false;

// 匹配检验

if(c == ')' && st.top()!='(') return false;

if(c == ']' && st.top()!='[') return false;

if(c == '}' && st.top()!='{') return false;

st.pop();

}

}

return st.empty();

}

int main(){

string s;

cout<<"输入字符串";

cin>>s;

bool result= BracketMatch(s);

cout<<(result?"括号匹配成功":"匹配失败")<<endl;

return 0;

}

三,汉诺塔问题

#include<iostream>

using namespace std;

void Hanoi(int n, char A, char B, char C)

{

if(n == 1)

{

cout << "盘子 1 : " << A << " → " << C << endl;

return;

}

Hanoi(n-1, A, C, B);

cout << "盘子 " << n << " : " << A << " → " << C << endl;

Hanoi(n-1, B, A, C);

}

int main(){

int n;

cout<<"输入整数:";

cin>>n;

char A,B,C;

Hanoi(n,A,B,C);

return 0;

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 21:13:39

AARRR 模型 vs. 5W1H 框架:2种电商用户行为分析路径的对比与应用

AARRR 模型 vs. 5W1H 框架&#xff1a;电商用户行为分析的两种高阶思维路径在电商行业&#xff0c;数据驱动的决策已成为企业增长的核心引擎。面对海量用户行为数据&#xff0c;如何选择有效的分析框架&#xff0c;直接关系到洞察的深度与行动的有效性。本文将深入对比AARRR海盗…

作者头像 李华
网站建设 2026/7/11 21:13:10

AI绘画面部特写提示词指南:从基础结构到高级技巧

面部特写提示词完全指南&#xff1a;从基础到高级的AI绘画技巧在AI绘画创作中&#xff0c;面部特写是最具挑战性也最吸引人的主题之一。一张出色的面部特写能够传达人物的情感、性格和故事&#xff0c;而一个不恰当的面部特写则可能毁掉整幅作品。本文将从基础概念到高级技巧&a…

作者头像 李华
网站建设 2026/7/11 21:08:55

Unity Dynamic Bone插件实战:实现角色胸部自然物理抖动

1. 项目概述&#xff1a;为什么我们需要Dynamic Bone&#xff1f;在Unity中制作一个栩栩如生的角色&#xff0c;尤其是带有柔软物理特性的角色&#xff0c;是很多开发者都会遇到的挑战。你可能会发现&#xff0c;一个静态的模型或者仅靠关键帧动画驱动的角色&#xff0c;总感觉…

作者头像 李华
网站建设 2026/7/11 21:08:39

WebGL项目Addressables内存管理优化:UniTask实战解决卡顿难题

1. 项目概述&#xff1a;当WebGL遇上Addressables&#xff0c;内存管理为何成为“卡顿”元凶&#xff1f;如果你正在用Unity开发WebGL项目&#xff0c;并且已经引入了Addressables资源管理系统&#xff0c;那么“卡顿”这个词对你来说可能一点都不陌生。尤其是在资源加载、场景…

作者头像 李华