根据入栈顺序判断出栈序列正确与否
来源:互联网 发布:口取纸打印软件 编辑:程序博客网 时间:2024/05/02 02:09
题目
描述: 题目标题:铁路栈问题
铁路的调度站如下:
火车编号为:1~9,且不重复。
如:编号分别为“1”、“2”、“3”、“4”、“5”的5个火车顺序进站,那么进站序列为“12345”,全部进站后再顺序出站,则出站序列为“54321”,如果先进1,2,然后2出站,然后1出站,然后再3进站、出站,4进站、出站,5进站、出站,那么出站序列就为21345.
详细描述:
int JudgeTrainSequence (int maxNum, char *pOutSeq);
输入参数:
int maxNum:进站的火车最大编号char* pOutSeq:使用字符串表示火车出站序列
输出参数(指针指向的内存区域保证有效):
无。
返回值:
Int: 根据输入的进站序列判断,如果输入的出站序列是可能的,返回1,否则返回0;
练习阶段: 高级
代码
#include <iostream>#include <string.h>#include <stack>using namespace std;/*详细描述: int JudgeTrainSequence (int maxNum, char *pOutSeq);输入参数: int maxNum:进站的火车最大编号 char* pOutSeq:使用字符串表示火车出站序列输出参数(指针指向的内存区域保证有效): 无。返回值: Int: 根据输入的进站序列判断,如果输入的出战序列是可能的,返回1,否则返回0;*/int JudgeTrainSequence (int maxNum, char *pOutSeq){ if(pOutSeq == NULL || maxNum <= 0){ return 0; }//if int size = strlen(pOutSeq); stack<int> trainSeq; // 初始 int index = 1; for(int i = 0;i < size;){ if(trainSeq.empty() || trainSeq.top() < pOutSeq[i] - '0'){ trainSeq.push(index); ++index; }//if else{ trainSeq.pop(); ++i; }//else }//for if(!trainSeq.empty()){ return 0; }//if return 1;}
0 0
- 根据入栈顺序判断出栈序列正确与否
- 判断出栈队列的正确与否
- 根据入栈顺序判断出栈顺序是否合法
- 给定入栈顺序,输出所有可能的出栈情况,并判断给定的序列是否为正确的输出序列
- 根据入栈判断出栈是否合法
- 根据栈的压入序列判断弹出序列是否正确(模板实现)
- 已知入栈顺序,判断某一序列是否为其合法出栈序列!
- java判断出栈顺序是否正确
- 判断出栈顺序是否正确
- 判断出栈顺序是否正确
- 如何判断出栈顺序是否正确?
- 18.判断出栈顺序是否正确?
- 判断出栈顺序是否正确
- 判断出栈序列是否正确
- 判断出栈序列是否正确
- 根据栈的入栈序列和出栈序列,打印push和pop的顺序-Amazon笔试题
- 给定入栈顺序,判断出栈顺序是否合法
- 判断出栈顺序是否满足入栈顺序
- GO2应对千万级访问量的解决之道
- dos命令删除文件夹下的文件 和隐藏文件
- 数据结构实验之二叉树五:层序遍历
- Codeforces Round #367 (Div. 2) C Hard problem(DP)
- 最大二分匹配(匈牙利算法)
- 根据入栈顺序判断出栈序列正确与否
- UITableViewCell的选择状态问题
- java 在项目根目录创建文件
- Cordova文件下载
- Apache2 httpd.conf 配置详解(一)
- 分析Java的hashCode 和 hashCode在HashMap的底层数据结构的应用
- Codeforces Round #367 (Div. 2) B - Interesting drink
- 关于复选框checkbox用作为单选框的方法
- 利用wireshark对zigbee及6lowpan进行抓包分析