zoukankan      html  css  js  c++  java
  • PAT 甲级 树专题小结

    1.已知两个序链表建树

    先序中序建树

    PAT 1086

    node *buildTree(vector<int>pre,vector<int>in,int pl,int pr,int il,int ir){
        if(pl>pr || il>ir) return NULL;
        int pos=-1;
        for(int i=il;i<=ir;i++){
            if(in.at(i)==pre.at(pl)){
                pos=i;
                break;
            }
        }
        node *root=new node();
        //root->left=root->right=NULL;
        root->data=pre.at(pl);
        root->left=buildTree(pre,in,pl+1,pl+pos-il,il,pos-1);
        root->right=buildTree(pre,in,pl+pos-il+1,pr,pos+1,ir);
        return root;    
    }

    后序中序建树

    PAT 1020

    node *build(int pl,int pr,int il,int ir){
        if(pl>pr || il>ir) return NULL;
        int pos=-1;
        for(int i=il;i<=ir;i++){
            if(in[i]==post[pr]){
                pos=i;
                break;
            }
        }
        node *root=new node();
        root->data=post[pr];
        root->right=build(pr-(ir-pos),pr-1,pos+1,ir);//是ir-pos
        root->left=build(pl,pr-(ir-pos)-1,il,pos-1);
        return root;
    }
  • 相关阅读:
    Linux下文件的基本操作
    conpot_usage简要说明
    const声明常量以及特点
    let变量声明以及声明特性
    盒子模型
    文本样式
    行间距
    字体的其他样式
    字体分类
    字体样式
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13270576.html
Copyright © 2011-2022 走看看