求先序排列(已知中序和后序求先序)

求先序排列(已知中序和后序求先序),第1张

求先序排列(已知中序和后序求先序)
#include 
using namespace std;

char b[20],c[20];

void shu(int bl,int br,int cl,int cr)
{
    cout << c[cr];
    int bk; //记录根点的位置
    for(int i=bl;i<=br;i++)
    {
        if(c[cr]==b[i])
        {
            bk=i;
            break;
        }
    }
    int ln=bk-bl;
    int rn=br-bk;
    if(ln>0)//左边有数
    {
        shu(bl,bl+ln-1,cl,cl+ln-1);
    }
    if(rn>0)//右边有数
    {
        shu(bk+1,bk+rn,cr-rn,cr-1);
    }
}
int main ()
{
    cin >> b >> c;
    int l=strlen(b)-1;
    shu(0,l,0,l);
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存