二叉树的遍历(递归)

原创 2016年05月30日 20:17:38

#include <iostream>
#include<stdlib.h>
using namespace std;

typedef struct BiTNode
{
    char data;
     BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
int CreateBiTree(BiTree &T)
{
    char data;
    cin>>data;
    if(data=='#')
    {
        T=NULL;
    }
    else
    {T=(BiTree)malloc(sizeof(BiTNode));
        T->data=data;
    CreateBiTree(T->lchild);
    CreateBiTree(T->rchild);
    }
return 0;
}
//输出
void Visit(BiTree T)
{
    if(T->data!='#')
    {
        cout<<T->data<<" ";
    }
}
//先序遍历二叉树
void PreTraverse(BiTree T)
{
    if(T!=NULL)
        {
            Visit(T);
    PreTraverse(T->lchild);
    PreTraverse(T->rchild);
        }
}
//中序遍历
void InTraverse(BiTree T)
{
    if(T!=NULL)
    {
        InTraverse(T->lchild);
        Visit(T);
        InTraverse(T->rchild);
    }
}
//后序遍历
void PostTraverse(BiTree T)
{
    if(T!=NULL)
    {
        PostTraverse(T->lchild);
        PostTraverse(T->rchild);
        Visit(T);
    }
}
int main()
{
    BiTree T;
    CreateBiTree(T);
    PreTraverse(T);
    cout<<endl;
    InTraverse(T);
    cout<<endl;
    PostTraverse(T);
    system("pause");
 /*ABCDEFG
   CBEGDFA
   CGEFDBA*/
        return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

二叉树的遍历(递归遍历)

一、什么是二叉树的遍历 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉...

二叉树遍历(递归)

package com.wzs; // 测试二叉树遍历,递归算法 public class TestBinaryTree { public static void main(String[] ar...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

二叉树遍历(递归)

二叉树又称为红黑树,是一种常用的数据结构,而二叉树的遍历则是一种非常基本的操作。遍历二叉树的方式有两大类:递归和非递归。递归方式算法较为简便,并且更便于理解,非递归方式则需要对二叉树的遍历次序有较为深...

遍历二叉树——非递归遍历

“test.cpp” #include using namespace std; #include #include template struct BinaryTreeNode { T _da...

遍历二叉树——递归遍历

“test.cpp” #include using namespace std; template struct BinaryTreeNode { T _data; BinaryTreeNod...

二叉树遍历(递归,非递归)

二叉树的 遍历的 几种方法

二叉树递归/非递归遍历

递归遍历 //前序遍历 void preorder(TreeNode *root, vector &path){ if(root != NULL) { path.pu...

递归 非递归 遍历二叉树

二叉树的重要性,想必大家都非常清楚。在数据结构中,二叉树是一种非常重要,也非常基础的非线性结构。遍历是二叉树最基础也是最重要的操作了。最常见的分为前序遍历,中序遍历,后续遍历。废话不多说,先直接上代码...

二叉树建树、递归遍历、非递归遍历

/* * BinaryTree.h */ #ifndef BINARYTREE_H #define BINARYTREE_H#include #include using namespace...
  • teffi
  • teffi
  • 2016-12-26 08:52
  • 139

二叉树的递归遍历与非递归遍历

二叉树的递归遍历与非递归遍历#include #include #include /* 本程序实现二叉树的创建,递归遍历与非递归遍历 */ typedef struct TNODE { ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)