本文实例讲述了C++基于栈实现铁轨问题。分享给大家供大家参考。具体分析如下:
示例图如下所示:
经典栈问题!第一次做的时候思路太混乱了,现在看了刘汝佳的书,重新整理下。
#include#include char stack[1010]; char A[1010]; char B[1010]; int main(int argc, char *argv[]) { scanf("%s%s",A,B); int len_a = strlen(A); int len_b = strlen(B); int top = -1; int tot = 0; int ix_a = 0; int ix_b = 0; while(1) { if(A[ix_a] == B[ix_b]) { printf("inn"); printf("outn"); ++ix_b; ++ix_a; if(ix_b == len_b) break; } else if(tot != 0 && B[ix_b] == stack[top]) { printf("outn"); --tot; --top; ++ix_b; if(ix_b == len_b) break; } else if(ix_a != len_a) { printf("inn"); ++tot; ++top; stack[top] = A[ix_a]; ++ix_a; if(ix_b == len_b) break; } else { printf("无解!n"); return 0; } } printf("完成!n"); return 0; }
希望本文所述对大家的C++程序设计有所帮助。



