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
关注
打赏
热门博文
- 2022大三计算机 | 保研面试 | 专业课(数据结构、计组等) 数学(离散等) | 资料整理
- 2022大三计算机 | 保研机试 | 学习路线
- Linux中sudo ./xxx.sh找不到命令的真正原因——文件执行权限
- Dapp区块链 | wireshark抓包2
- 区块链报错7 | invalid address | Error: [ethjs-query] while formatting outputs from RPC: “message“
- 区块链报错6 | Failed to load resource: the server responded with a status of 404 (Not Found)
- 区块链报错 5 | Contract has not been deployed to detect network (network/artifact mismatch)
- 区块链报错1 | npm run dev 无法解析json格式 | npm ERR JSON.parse Failed to parse json
- 区块链报错3 | truffle unbox 报错 | downloading失败 | unbox failed
- 区块链知识(一) | 实例化合约Contract