uva 11234
来源:互联网 发布:网络交友的利的根据 编辑:程序博客网 时间:2024/06/12 20:03
题意 :实际上就是让我们建树,然后遍历树,逆序输出。。
#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <stack>using namespace std;class Node{public :char data;int left,right;}node[10005];char s[10005];stack<int >st;queue<int >qu;int result[10005],inpos;void bfs(int root) //从根节点开始层次遍历,记录结果{while(!qu.empty())qu.pop();qu.push(root);result[inpos++] = node[root].data; while(!qu.empty()){int t = qu.front(); //拿出一个节点开始遍历qu.pop();if(node[t].left != -1){result[inpos++] = node[node[t].left].data;qu.push(node[t].left); // 队是先进先出的}if(node[t].right != -1){result[inpos++] = node[node[t].right].data;qu.push(node[t].right);}}}int main(){int t;scanf("%d",&t);getchar();while(t--){scanf("%s",s);while(!st.empty())st.pop();for(int i =0 ; i < strlen(s) ; i++ ){if(s[i]>='a' && s[i]<= 'z'){st.push(i); // 我们每次入栈的是根节点node[i].data = s[i];node[i].left = -1;node[i].right = -1;}else{int r = st.top();st.pop();int l = st.top();st.pop();node[i].data = s[i]; // 构建一棵小树,然后还是根节点入栈node[i].left = l;node[i].right = r;st.push(i);}}inpos = 0;bfs(st.top()); for(int i = inpos-1 ; i >= 0 ; i--) // 倒序输出printf("%c",result[i]);printf("\n");}return 0;}
- uva 11234
- UVA 11234
- uva 11234
- uva 11234
- UVA-11234
- uva 11234
- UVA 11234
- UVa 11234 Expressions
- uva 11234 - Expressions
- UVa 11234 Expressions
- uva 11234 - Expressions
- UVa 11234 - Expressions
- UVA 11234 - Expressions
- UVa 11234 - Expressions
- UVA 11234 - Expressions
- uva 11234 - Expressions
- UVA 11234 - Expressions
- uva-11234 Expressions
- Opencv Mat与Iplimage的相互转换
- QCom MSM MDP显示驱动一些点的简记
- 在执行 COMMIT 和 ROLLBACK 操作时, 等待 "日志文件同步" 事件消耗了大量数据库时间。
- Android拖动效果实现
- 默写nginx并逐句分析 - ngx_buf.c
- uva 11234
- 骑自行车上班
- 理解ThreadLocal
- [编码问题] Python错误: SyntaxError: Non-ASCII character
- Ubuntu 12.04下fbTerm的使用
- cocos2d-x 2.1.4 android 开发环境搭建
- Linux指令初学——鸟哥的Linux私房菜(二)
- hdu 2222 Keywords Search(AC自动机模板题)
- 【技术类】【看我影像平台新特性】ArcGIS 10.2影像平台新特性概览