第六章部分例题

it2024-11-28  21

 

#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn=210; char buf[maxn][maxn]; int n; bool isnode(char ch) { if(ch=='-' || ch=='|' || ch==' ' || ch==0 || ch=='\n') return false; return true; } void dfs(int r,int c) { printf("(%c",buf[r][c]); if(buf[r+1][c]=='|') { int i; for(i=c;i>=0;i--) if(buf[r+2][i]!='-') break; //printf("i:%d",i); for(int j=i+1;buf[r+2][j]=='-';j++) if(isnode(buf[r+3][j])) dfs(r+3,j); } else printf("()"); printf(")"); } void solve() { memset(buf,0,sizeof(buf)); n=0; for(;;) { fgets(buf[n],maxn,stdin); if(buf[n][0]=='#') break; n++; } if(buf[0][0]!='#') { for(int i=0;i<maxn;i++) if(isnode(buf[0][i])) dfs(0,i); } else printf("()"); printf("\n"); } int main() { int T; scanf("%d",&T); getchar(); while(T--) solve(); return 0; }

 

转载于:https://www.cnblogs.com/tclan126/p/7383393.html

相关资源:数据结构—成绩单生成器
最新回复(0)