題意大概:
將多叉樹轉化為括號表達式。
每個節點除了“-”、“|”、和空格以外的其它字符表示。
每個非葉節點的正下方總會有一個“|”字符,然後下方是一排“-”字符,恰好覆蓋所有的子節點的上方。
單獨的一行“#”為數據結束標記。
代碼如下:
#include#include #include using namespace std; const int maxn=100; char buf[maxn][maxn]; int num,cnt=0; void action(int row,int col) { if(buf[row+1][col]=='|'&&row+1 =0) col--;//搜尋最左邊的'-',然後記錄! for(int i=col; buf[row+2][i]=='-'&&buf[row+3][i]!='\0'; i++) { if(buf[row+3][i]!=' ') { cout< >num; getchar(); while(num--) { cnt=0; memset(buf,'\0',sizeof(buf)); while(gets(buf[cnt])!=NULL) { cnt++; if(strcmp(buf[cnt-1],"#")==0) break; } fun(); } return 0; } /* 2 A | ------------- B C D | | ----- - E F G # (A(B()C(E()F())D(G()))) e | ----- f g # (e(f()g())) Process returned 0 (0x0) execution time : 5.005 s Press any key to continue. */