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

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    //二叉链表示法
    typedef struct BiTNode
    {
    	char data;
    	struct BiTNode *lchild,*rchild;
    }BiTNode,*BiTree;
    void preOrder(BiTNode *root)//先序遍历(先遍历根然后遍历左子树最后遍历右子树)
    {
    	if(root==NULL)
    	{
    		return ;
    	}
    	printf("%c ",root->data);
    	preOrder(root->lchild);//遍历左子树
    	preOrder(root->rchild);//遍历右子树
    }
    void inOrder(BiTNode *root)//中序遍历(先遍历左子树然后遍历根最后遍历右子树)
    {
    	if(root==NULL)
    	{
    		return ;
    	}
    	inOrder(root->lchild);//遍历左子树
    	printf("%c ",root->data);
    	inOrder(root->rchild);//遍历右子树
    }
    void postOrder(BiTNode *root)//后序遍历(先遍历左子树然后遍历右子树最后遍历根)
    {
    	if(root==NULL)
    	{
    		return ;
    	}
    	postOrder(root->lchild);//遍历左子树
    	postOrder(root->rchild);//遍历右子树
    	printf("%c ",root->data);
    }
    void main()
    {
    	//创建树的节点
    	BiTNode a={'A',NULL,NULL};
    	BiTNode b={'B',NULL,NULL};
    	BiTNode c={'C',NULL,NULL};
    	BiTNode d={'D',NULL,NULL};
    	BiTNode e={'E',NULL,NULL};
    	BiTNode f={'F',NULL,NULL};
    	BiTNode g={'G',NULL,NULL};
    	BiTNode h={'H',NULL,NULL};
    	BiTNode i={'I',NULL,NULL};
    	//建立关系
    	a.lchild=&b;
    	a.rchild=&e;
    	b.rchild=&c;
    	c.lchild=&d;
    	e.rchild=&f;
    	f.lchild=&g;
    	g.lchild=&h;
    	g.rchild=&i;
    	//树的遍历
    	printf("先序遍历:");
    	preOrder(&a);
    	printf("
    ");
    	printf("中序遍历:");
    	inOrder(&a);
    	printf("
    ");
    	printf("后序遍历:");
    	postOrder(&a);
    	printf("
    ");
    	system("pause");
    }
    

      

  • 相关阅读:
    gradle下载安安装教程
    mybatis 一对一association ,一对多collection
    Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleBuildError:
    API
    VUE 自定组件,注意事项,注意事件
    IDEA设置
    正则表达式
    前端页面适配的rem换算
    webpack打包原理
    vue-cli脚手架工具根目录的babelrc配置文件
  • 原文地址:https://www.cnblogs.com/jueshi0208/p/5546095.html
Copyright © 2011-2022 走看看