您当前的位置: 首页 > 

111辄

暂无认证

  • 4浏览

    0关注

    91博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

栈的简单应用:数制转换·括号的匹配检验·行编辑·迷宫求解·表达式求值·递归调用

111辄 发布时间:2020-02-29 10:56:30 ,浏览量:4

ps:所用代码为伪代码

顺序栈:

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct{
	SElemType *base;
	SElemType *top;
	int stacksize;
}SqStack; 

1.数制转换(10进制→8进制) 问题本身(保留数据)就有后进先出的特点,所以用栈;抓住本质选择算法,这若使用数组则是很复杂了

void conversion(){
	InitStack(S);
	scanf(N);
	while(N){
		Push(S,N%8,);
		N/=8;
	}
	while(!StackEmpty){
		Pop(S,e);
		printf(e);
	}
} 

2.括号的匹配检验 最后一个左括号的期待最急迫,率先匹配右括弧,符合栈后进先出的特性 先让一群左括号都进栈,再用右括号一个一个判断,匹配成功则出栈;要是栈空了则说明成功,否则匹配失败

Status matching(string &exp){
	int state=1; //状态参量,为1成功,为0错误
	while(i            
关注
打赏
1648114069
查看更多评论
0.0413s