二叉树C++ | 深度优先遍历(前序、中序、后序)_3
深度优先遍历
/* Binary Tree Traversal - Preorder, Inorder, Postorder */
#include<iostream>
using namespace std;struct Node {char data;struct Node *left;struct Node *right;
};//Function to visit nodes in Preorder
void Preorder(struct Node *root) {// base condition for recursion// if tree/sub-tree is empty, return and exitif(root == NULL) return;printf("%c ",root->data); // Print dataPreorder(root->left); // Visit left subtreePreorder(root->right); // Visit right subtree
}//Function to visit nodes in Inorder
void Inorder(Node *root) {if(root == NULL) return;Inorder(root->left); //Visit left subtreeprintf("%c ",root->data); //Print dataInorder(root->right); // Visit right subtree
}//Function to visit nodes in Postorder
void Postorder(Node *root) {if(root == NULL) return;Postorder(root->left); // Visit left subtreePostorder(root->right); // Visit right subtreeprintf("%c ",root->data); // Print data
}// Function to Insert Node in a Binary Search Tree
Node* Insert(Node *root,char data) {if(root == NULL) {root = new Node();root->data = data;root->left = root->right = NULL;}else if(data <= root->data)root->left = Insert(root->left,data);else root->right = Insert(root->right,data);return root;
}int main() {/*Code To Test the logicCreating an example treeM/ \B Q/ \ \A C Z*/Node* root = NULL;root = Insert(root,'M'); root = Insert(root,'B');root = Insert(root,'Q'); root = Insert(root,'Z'); root = Insert(root,'A'); root = Insert(root,'C');//Print Nodes in Preorder. cout<<"Preorder: ";Preorder(root);cout<<"\n";//Print Nodes in Inordercout<<"Inorder: ";Inorder(root);cout<<"\n";//Print Nodes in Postordercout<<"Postorder: ";Postorder(root);cout<<"\n";
}
有些代码不应该被忘记,也没有源代码不应该被记住。
二叉树C++ | 深度优先遍历(前序、中序、后序)_3相关推荐
- 二叉树的深度优先遍历 (前序 中序 后序)
深度优先遍历主要依靠递归实现,初学递归,研究二叉树的遍历顺序有助于加深对递归的理解. 例: *注意对比代码顺序 1.前序: public void deep_search(TreeNode root) ...
- 二叉树的深度优先搜索, 前序中序后序
深度优先搜索即 depth first search, 简称 DFS 从根节点触发, 沿着路径, 达到最大层次的节点, 然后回退到上一节点, 继续搜索 有前序, 中序, 后序三种方式 前序遍历 根左右 ...
- 详细图解二叉树四种遍历(前序中序后序层次遍历)
文章目录 一.前序遍历 常规操作 简单方法 二.中序遍历 常规操作 简单方法 三.后序遍历 常规操作 四.层次遍历 常规操作 本文中以此二叉树为例 一.前序遍历 常规操作 先根,再左,再右 确定了遍历 ...
- Python__数据结构与算法——树、二叉树(实现先、中、后序遍历)
目录 一.树 二.二叉树 树和前面所讲的表.堆栈和队列等这些线性数据结构不同,树不是线性的.在处理较多数据时,使用线性结构较慢,而使用树结构则可以提高处理速度.不过,相对于线性的表.堆栈和队列等线性数 ...
- PHP实现二叉树的深度优先遍历(前序、中序、后序)和广度优先遍历(层次) 转载陈小龙哈2017...
http://blog.csdn.net/baidu_30000217/article/details/52953127 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点 ...
- php 实现二叉树的最大深度_PHP实现二叉树的深度优先遍历(前序、中序、后序)和广度优先遍历(层次)...
前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次.要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历.中序遍历.后序遍历.具体说明如下: 前序遍 ...
- 二叉树前序遍历python输出_[宜配屋]听图阁 - Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例...
本文实例讲述了Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作.分享给大家供大家参考,具体如下: 实现一个功能: 输入:一颗二叉树的先序和中序遍历 输出:后续遍历 思想: 先序遍历中,第 ...
- 二叉树的前序中序后序遍历
二叉树的前序中序后序遍历 二叉树的遍历 前序遍历 中序遍历 后序遍历 总结 二叉树的遍历 二叉树的遍历有前序遍历,中序遍历,后序遍历三种. 今天我把二叉树的遍历方法给大家总结一下,也算对我自己学习的一 ...
- 【二叉树Java】二叉树遍历前序中序后序遍历的非递归写法
本文主要介绍二叉树前序中序后序遍历的非递归写法 在探讨如何写出二叉树的前序中序后序遍历代码之前,我们先来明确一个问题,前序中序后序遍历根据什么区分? 二叉树的前序中序后序遍历,是相较根节点说的.最先遍 ...
- 二叉树的前序中序后序遍历java代码实现
1.前序遍历概述 前序遍历(VLR) 是二叉树遍历的一种,也叫做先根遍历.先序遍历.前序周游,可记做根左右.前序遍历首先访问根结点然后遍历左子树,最后遍历右子树. 若二叉树为空则结束返回,否则: (1 ...
最新文章
- Spring Boot 应用如何提高服务吞吐量?
- Redis秒杀功能设计与实现
- cdn加载插件和npm安装的差别_web开发:打字机效果插件Typed.js
- php rbac 菜单生成,RBAC集成AdminLTE后台主题对菜单进行控制
- hibernate映射(学生-科目-成绩)
- linux可上网limbo镜像,limbo模拟器win10镜像
- 扁平化管理:硅谷高效工作法
- 惠普触控板使用指南_hp触摸板开关怎么使用 如何锁定hp触摸板
- mysql怎么排成绩前三名_Mysql查询各科成绩前三名并分别排序
- 四成单身、平均年薪19万、最爱买房,原来真实的程序员是这个样子的…...
- Python Requests实现天气预报
- python读取单元格前几个字的值_EXCEL表格中怎么取前一单元格中的前几个字符
- 使用word写论文必备技巧(设置目录,目录导航)
- 限制guest账号访问硬盘权限
- 企业级数据中台应用架构和技术架构
- mysql中limit用法_MYSQL中LIMIT用法?
- MT6752/MT6755处理器功能介绍,MT6752/MT6755芯片资料分享
- 浏览器打不开计算机二级网页,二级网页打不开,教您浏览器二级页面打不开怎么解决...
- 初学者如何选购第一把吉他?新手注意这几点,告别选择困难!附上10款高性价比入门吉他推荐!
- 【hackerrank】-Day 16: Exceptions - String to Integer