• poj2255——先序中序求后序


    之前写过一个数字的稍作修改便可以AC,对于题目要求以文本结束则结束程序需要输入不为EOF即可。

    #include<stdio.h>
    #include<string.h>
    typedef struct btnode{
        char data;
        struct btnode *left;
        struct btnode *right;
    }treenode;
    treenode *gettree(int prel,int prer,int inl,int inr,char preorder[],char inorder[]){
        if(prel>prer)
            return NULL;
        treenode *root;     
        root=new treenode;
        root->data=preorder[prel];
        if(prel==prer){
            root->left=NULL;
            root->right=NULL;
            return root;
        }
        int temp;
        for(int i=1;i<=inr;i++)
            if(inorder[i]==preorder[prel]){
                temp=i;
                break;
            }
        root->left=gettree(prel+1,prel+(temp-inl),inl,temp-1,preorder,inorder);
        root->right=gettree(prel+(temp-inl)+1,prer,temp+1,inr,preorder,inorder);
        return root;
    }
    void postorder(treenode *t){
        if(t!=NULL){
            postorder(t->left);
            postorder(t->right);
            printf("%c",t->data);
        }
    }
    int main(){
        char preorder[101];
    	char inorder[101];	
    	while(scanf("%s%s",preorder,inorder)!=EOF){
        	int n=strlen(preorder);
    		treenode *tree=gettree(0,n-1,0,n-1,preorder,inorder);
        	postorder(tree);
        	printf("
    ");
        }
        return 0;
    }
    

      

  • 相关阅读:
    Tomcat虚拟目录的映射方式
    Linux常用命令
    java断点调试
    破解MyEclipse
    JS判断浏览器
    css3 box-sizing详解。
    this-使用call . apply
    this-内部函数
    this-对象方法调用
    this-纯函数
  • 原文地址:https://www.cnblogs.com/lvcoding/p/7510234.html
Copyright © 2020-2023  润新知