PAT1130. Infix Expression (25) 中序遍历
生活随笔
收集整理的這篇文章主要介紹了
PAT1130. Infix Expression (25) 中序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意
給出一棵中綴樹
然后輸出他的表達式
分析
一開始還想隨便在輸入點中任找一個點然后不斷深搜建樹
后來才發現這道題輸入數據就把樹根據指向關系已經建立好了
只需要確定根節點然后中序遍歷就好了
code
#include<bits/stdc++.h> using namespace std; bool bok[22]; struct node{string val;int l,r; }cas[30]; int rt; void dfs(int r){if(r!=rt&&(cas[r].l!=-1||cas[r].r!=-1))//輸出括號條件cout<<"(";if(cas[r].l!=-1){dfs(cas[r].l);}cout<<cas[r].val;if(cas[r].r!=-1){dfs(cas[r].r);if(r!=rt)cout<<")"; } } int main() {int n;cin>>n;for(int i=1;i<=n;i++){cin>>cas[i].val>>cas[i].l>>cas[i].r; if(cas[i].l!=-1)bok[cas[i].l]=1;if(cas[i].r!=-1)bok[cas[i].r]=1;} for(int i=1;i<=n;i++){if(!bok[i]){rt=i;dfs(i);break;}} return 0; }總結
以上是生活随笔為你收集整理的PAT1130. Infix Expression (25) 中序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 21:苹果和虫子2
- 下一篇: html5+前端脸部识别采集,前端人脸识