Uva 11234 - Expressions//数据结构,二叉树
来源:互联网 发布:逆战领枪软件 编辑:程序博客网 时间:2024/05/16 18:34
刚开始写题是有点想当然,自己感觉很简单。可是在写代码的时候才发现自己的建树方法很难实现。所以就在想有没有更简单的建树方法。联想到之前刷的括号匹配的题,灵感就来了。orz,这道题关键就在如何建树。下面是代码:
#include<iostream>#include<stack>#include<string>#include<cctype>#include<stdio.h>#define MAXN 10005using namespace std;struct node{ char val; node* l; node* r;};node* q[MAXN];char ans[MAXN];int n;void levelorder(node *root){ int front=0,rear=1; q[0]=root; n=0; while(front<rear) { node* u=q[front++]; ans[n++]=u->val; if(u->l==NULL&&u->r==NULL) continue; if(u->l!=NULL) q[rear++]=u->l; if(u->r!=NULL) q[rear++]=u->r; } return;}int main(){ int c; //freopen("a.txt","r",stdin); //freopen("b.txt","w",stdout); cin>>c; while(c--) { string str; stack<node*> s; cin>>str; for(int i=0;i!=str.size();++i) { if(islower(str[i])) { node *p; p=new node; p->val=str[i]; p->l=p->r=NULL; s.push(p); } if(isupper(str[i])) { node *p=s.top(); s.pop(); node *q=s.top(); s.pop(); node *root; root=new node; root->val=str[i]; root->l=q; root->r=p; s.push(root); } } levelorder(s.top()); for(int i=n-1;i>=0;--i) cout<<ans[i]; cout<<endl; } //fclose(stdin); //fclose(stdout); return 0;}
- Uva 11234 - Expressions//数据结构,二叉树
- UVA 11234 Expressions(数据结构,二叉树,栈,队列)
- 数据结构 + BFS uva 11234 - Expressions
- UVa 11234 Expressions 二叉树 层次遍历 广搜
- UVA 11234 - Expressions 二叉树建树+BFS 层次遍历
- Uva 11234 Expressions (二叉树的层次遍历)
- uva 11234 Expressions(建立二叉树+层次遍历)
- POJ 3367 Expressions(数据结构-二叉树)
- POJ 3367 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
- LinuxMint下安装Fedora注记
- 学习JS
- java中字符串的编码解码问题
- 毕业设计(十五)---发表文章(1)之- 发表文章和回复博客 的2个简单ckeditor样式
- 面向对象的5个基本设计原则
- Uva 11234 - Expressions//数据结构,二叉树
- HDU 4006
- c#客户端连接mysql数据库插入中文字符乱码解决方案(超简单)
- [Unity3D]手机3D游戏开发:场景切换与数据存储(PlayerPrefs 类的介绍与使用)
- NoSuchMethodException分析
- stardict 词库安装
- MFC OCX 控件事件的添加和处理
- 一个构造和析构函数很经典的例子(继承相关)
- derby获得查询结果条目数