发表文章

[最新] 前序中序后序转换

Imagirl1 27天前 0

给出后序中序,转成前序,root根节点

void pre(int root, int start, int end) {
    if(start > end) return ;
    int i = start;
    while(i < end && in[i] != post[root]) i++;
    printf("%d ", post[root]);
    pre(root - 1 - end + i, start, i - 1);
    pre(root - 1, i + 1, end);
}
 

给出前序后序,转成后序

void pos(int root, int start, int end) {
    if(start > end) return ;
    int i = start;
    while(i < end && in[i] != pre[root]) i++;
    pos(root+1, start, i - 1);
    pos(root+(i-start+1), i + 1, end);
    printf("%d ", pre[root]);
}
 

 

相关推荐
最新评论 (0)
返回
发表文章
Imagirl1
文章数
45
评论数
0
注册排名
1339900