• 使用递归法建立二叉树


    使用递归法建立二叉树

    1.代码

    #include<stdio.h>
    typedef struct BiTNode
    {
        char data;
        struct BiTNode *rchild,*lchild;
    } BiTNode,*BiTree;
    int CreateBiTree(BiTNode *&T)   
    {
        char x;
        scanf("%c",&x);
        if(x=='#')
            T=NULL;
        else
        {
            T=new BiTNode;     
            T->data=x;
            CreateBiTree(T->lchild);
            CreateBiTree(T->rchild);
        }
        return 0;
    }
    void PreOrder(BiTree T)
    {
    	if(T)
    	{
    		printf("%c",T->data);
    		PreOrder(T->lchild);
    		PreOrder(T->rchild);
    	}
    }
    void InOrder(BiTree T)
    {
    	if(T)
    	{
    		InOrder(T->lchild);
    		printf("%c",T->data);
    		InOrder(T->rchild);
    	}
    }
    void PostOrder(BiTree T)
    {
    	if(T)
    	{
    		PostOrder(T->lchild);
    		PostOrder(T->rchild);
    		printf("%c",T->data);
    	}
    }
    int main()
    {
    	BiTNode *T;
    	printf("以先序遍历的形式输入二叉树:"); 
    	CreateBiTree(T);
    	printf("前序遍历:"); 
    	PreOrder(T);
    	printf("
    中序遍历:");
    	InOrder(T);
    	printf("
    后序遍历:");
    	PostOrder(T);
    	delete T;
    	return 0;
    }
    
    

    1.1先序遍历

    void PreOrder(BiTree T)
    {
    	if(T)
    	{
    		printf("%c",T->data);
    		PreOrder(T->lchild);
    		PreOrder(T->rchild);
    	}
    }
    

    1.2中序遍历

    void InOrder(BiTree T)
    {
    	if(T)
    	{
    		InOrder(T->lchild);
    		printf("%c",T->data);
    		InOrder(T->rchild);
    	}
    }
    

    1.3后序遍历

    void PostOrder(BiTree T)
    {
    	if(T)
    	{
    		PostOrder(T->lchild);
    		PostOrder(T->rchild);
    		printf("%c",T->data);
    	}
    }
    

    2.运行结果截图

  • 相关阅读:
    docker
    SAML(Security assertion markUp language) 安全断言标记语言
    kafka消息系统
    OBS 对象存储技术学习
    AOP之AspectJ
    sql查漏补缺
    todolist
    springboot 注解整理
    前端之jQuery
    前端之BOM和DOM
  • 原文地址:https://www.cnblogs.com/yujun59/p/10777834.html
Copyright © 2020-2023  润新知