UVa11234 - Expressions

2014-11-24 10:10:32 · 作者: · 浏览: 2

题目地址:点击打开链接

二叉树重建+层序遍历

C++代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         using namespace std; struct TreeNode { char data; TreeNode *lchild,*rchild; }; int main() { int n; while(cin>>n) { while(n--) { string s; cin>>s; int size=s.size(); stack
        
          st; int i; for(i=0;i
         
          data=s[i]; p->lchild=NULL; p->rchild=NULL; st.push(p); } else { TreeNode *r=st.top(); st.pop(); TreeNode *l=st.top(); st.pop(); TreeNode *p=new TreeNode; p->data=s[i]; p->lchild=l; p->rchild=r; st.push(p); } } deque
          
            dt; dt.push_back(st.top()); vector
            
            vc; while (!dt.empty()) { TreeNode *p=dt[0]; dt.pop_front(); vc.push_back(p->data); if(p->lchild) dt.push_back(p->lchild); if(p->rchild) dt.push_back(p->rchild); } for(i=size-1;i>=0;--i) cout<