1130 Infix Expression(25分)

希望是我想复杂了_(:з」∠)_似乎他好像没告诉我根的位置 我就找了一下根
算了没时间细看了AC就行啦
#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
using namespace std;
typedef struct
{
    string key;
    int lchild, rchild;
}node;
vector<node> Tree(21);
int cnt;
void PreOrder( int T )
{
    if( T != -1 )
    {
        ++cnt;
        PreOrder( Tree[T].lchild );
        PreOrder( Tree[T].rchild );
    }
}
void InOrder( int T, int Root )
{
    if( T != -1 )
    {
        if( Tree[T].lchild != -1 || Tree[T].rchild != -1 )
            printf("%s", T != Root ? "(":"");
        InOrder( Tree[T].lchild, Root );
        cout << Tree[T].key;
        InOrder( Tree[T].rchild, Root );
        if( Tree[T].lchild != -1 || Tree[T].rchild != -1 )
            printf("%s", T != Root ? ")":"");
    }
}
int main()
{
    int N, Root;
    cin >> N;
    for( int i = 1; i <= N; ++i )
        cin >> Tree[i].key >> Tree[i].lchild >> Tree[i].rchild;
    for( int i = 1; i <= N && cnt < N; ++i, cnt = 0 )
    {
        PreOrder(i);
        if( cnt == N )
            Root = i;
    }
    InOrder( Root, Root );
}

发布了152 篇原创文章 · 获赞 144 · 访问量 9240

猜你喜欢

转载自blog.csdn.net/qq_43749739/article/details/100178214