zoukankan      html  css  js  c++  java
  • 使用递归法建立二叉树

    使用递归法建立二叉树

    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.运行结果截图

  • 相关阅读:
    keras多层感知机MLP
    局域网互通
    根号和分式
    vim简单的移动光标
    vim几种常用的插入模式
    LaTeX数学模式&上下标&代码块
    LaTeX入门
    ThinkPad X220i 安装 Mac OSX
    SUSE linux ,liveUSB制作方法
    KextWizard 的使用方法;以及Kext安装的几种工具下载
  • 原文地址:https://www.cnblogs.com/yujun59/p/10777834.html
Copyright © 2011-2022 走看看