zoukankan      html  css  js  c++  java
  • 二叉树的遍历算法 递归算法

    ////////////////////////////////////////////
    //二叉树的遍历算法 递归算法 			  //
    //Author:Wang Yong				  		  //	
    //Date:	2010.8.19				  		  //
    ////////////////////////////////////////////
    
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef char ElemType;
    ///////////////////////////////////////////
    
    //定义树的结点类型
    
    typedef struct BNode 
    {
    	ElemType data;
    	struct BNode *lchild,*rchild;	
    };
    ///////////////////////////////////////////
    
    //二叉树的创建
     
    BNode *CreatBitTree()
    {
    	BNode *p;
    	char c;
    	scanf("%c",&c);
    	if(c == '#') p = NULL; //截止二叉树的建立 
    	else
    	{
    		p = (BNode *) malloc(sizeof(BNode)); //申请结点空间 
    		p->data = c;
    		p->lchild = CreatBitTree();
    		p->rchild = CreatBitTree();
    	}
    	return  p;
    } 
    
    ////////////////////////////////////////////
    
    //二叉树的先序遍历
    
    void  PreOrderTraverse(BNode *p)
    {
    	if(p != NULL)
    	{
    		printf("%c*",p->data);
    		PreOrderTraverse(p->lchild);
    		PreOrderTraverse(p->rchild);
    	}
    }
    
    /////////////////////////////////////////////
    
    //二叉树的中序遍历
    
    void InOrderTraverse(BNode *p)
    {
    	if(p != NULL)
    	{
    		InOrderTraverse(p->lchild);
    		printf("%c*",p->data);
    		InOrderTraverse(p->rchild);
    	}
    }
    
    ////////////////////////////////////////////// 
    
    //二叉树的后序遍历
    
    void PostOrderTraverse(BNode *p)
    {
    	if(p != NULL)
    	{
    		PostOrderTraverse(p->lchild);
    		PostOrderTraverse(p->rchild);
    		printf("%c*",p->data);
    	}
    } 
    
    /////////////////////////////////////////////
    
    int main()
    {
    	BNode *tree;
    	tree = CreatBitTree();
    	PreOrderTraverse(tree);
    	printf("\n");
    	InOrderTraverse(tree);
    	printf("\n");
    	PostOrderTraverse(tree);
    	printf("\n");
    	
    	return 0;
    } 
    
  • 相关阅读:
    事务的基本特性和隔离级别
    mysql锁的类型
    索引设计的原则
    mysql聚簇索引和非聚簇索引的区别
    spring事务什么时候会失效?
    spring事务传播机制
    GAN的Pytorch实现
    DCGAN的Pytorch实现
    PyTorch学习教程、手册
    去噪论文合集Paper
  • 原文地址:https://www.cnblogs.com/newwy/p/1847472.html
Copyright © 2011-2022 走看看