- 浏览: 3558341 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
关于二叉树的遍历
dzsc.com文章出处: 发布时间: 2009/09/10 | 2667 次阅读 | 0次推荐 | 0 条留言
作者: 曹忠明,华清远见嵌入式学院讲师。
二叉树遍历就是沿某条搜索路径周游二叉树,对树中的每一个节点访问一次且仅访问一次。由于二叉树的递归性质,遍历算法也是递归的。
二叉树的遍历有先序遍历、中序遍历和后序遍历。下面以(图一)中二叉树介绍一下这三种遍历。
(图一) 二叉树
1、先序遍历
先序遍历的遍历规则是(中 前 后),中就是父节点,前就是左孩子,后是右孩子。既先访问当前节点,再访问左子树,最后访问右子树。这个过程是由根节点开始的一个递归的过程。以上面这个二叉树为例。他的遍历过程为:
(1)ABC
(2)A(BD)(CE)
(3)A(B(DF))(C(EGH))
算法实现为:
PREORDER ( bitree *r)
{
if ( r = = NULL )
return ; /*空树返回*/
printf ( " %c ",r->data ); /*先访问当前节点*/
PREORDER ( r->lchild ); /*再访问该节点的左子树*/
PREORDER ( r->rchild ); /*最后访问该节点右子树*/
}
2、中序遍历
中序遍历的遍历规则是(前 中 后),既访先问左子树,再访问当前节点,最后访问右子树。他的遍历过程为:
(1)BAC
(2)(DB)A(CE)
(3)((DF)B)A(C(GEH)
算法实现为:
INORDER ( bitree *r)
{
if ( r = = NULL )
return ; /*空树返回*/
INORDER ( r->lchild ); /*先访问该节点的左子树*/
printf ( " %c ",r->data ); /*再访问当前节点*/
INORDER ( r->rchild ); /*最后访问该节点右子树*/
}
3、后序遍历
中序遍历的遍历规则是(前 后 中),既先访问当前节点的左子树,在访问当前节点的右子树,最后访问当前节点。他的遍历过程为:
(1)BCA
(2)(DB)(EC)A
(3)((FD)B)((GHE)C)A
算法实现为:
POST ORDER ( bitree *r)
{
if ( r = = NULL )
return ; /*空树返回*/
POSTORDER ( r->lchild ); /*先访问该节点的左子树*/
POSTORDER ( r->rchild ); /*再访问该节点右子树*/
printf ( " %c ",r->data ); /*最后访问当前节点*/
}
由上面一个例子可以看出,这是一个递归的过程,由根节点开始,递归的对各自的孩子结点按规则遍历。
“本文由华清远见
http://www.embedu.org/index.htm
提供”
发表评论
-
Java 实现线性表
2012-10-04 21:05 14071.数组实现的线性表 pac ... -
java 归并排序 自己写
2012-02-22 09:03 1456package endual.xier.writeaga ... -
java 回溯法求解 8皇后问题
2012-02-14 07:51 4486package endual; public cl ... -
算法设计与分析_回溯法分析
2012-02-12 09:53 2386回溯法 有通用的解题 ... -
经典而简单的贪心算法
2012-02-10 18:23 2024package endual; public cl ... -
贪心算法的一些感悟
2012-02-10 15:42 2409每一个贪心算法的背后 ... -
递归思想 汉诺塔的问题
2012-02-09 10:46 1658package endual; public cl ... -
带权图 最短路径 代码自己写
2012-02-09 10:46 3186最短路径问题 可 ... -
带权图的最小生成树 (代码自己写)
2012-02-08 16:02 46601.大理论的一些资料 ... -
数据结构学习的在线好网址
2012-02-07 16:20 1566http://sjjg.js.zwu.edu.cn/SFXX/ ... -
有向无环图 拓扑排序
2012-02-07 15:53 3464package endual.tuopupaixu; ... -
java 图的最小生成树问题 (代码自己写)
2012-02-07 13:51 2792最小生成树是基于无无向图,并且是没有权值的图的。它的实现可以用 ... -
java 图 代码自己写
2012-02-07 13:07 1790图的建立也是基于数组的,但是遍历的话是基于链表或者是矩阵的 ... -
堆 (自己写)
2012-02-06 13:32 1462堆也是基于数组的哦,所以在创建的时候,请先要考虑好数组的大小了 ... -
哈希表的一些概念 代码(自己写)
2012-02-05 18:44 2185首先,我们要明确一点 ... -
红黑树的一些概念
2012-02-05 14:43 2014普通的二叉树作为数 ... -
两个正整数相加
2012-02-05 09:48 1873import java.util.Scanner; i ... -
二叉树代码
2012-02-05 09:51 1726package endual; /** * 树 ... -
java 二叉树
2012-02-04 14:17 1577为什么要用二叉树 通常我们去实现数据结构有两种方式,一 ... -
桶排序(代码自己写)
2012-02-04 13:24 2037简单来说,就是把数据分组,放在一个个的桶中,然后对每个桶 ...
相关推荐
二叉树的遍历二叉树的遍历二叉树的遍历二叉树的遍历二叉树的遍历
用C++写的二叉树先序遍历、中序遍历和后序遍历非递归算法
二叉树的遍历以及创建.zip二叉树的遍历以及创建.zip二叉树的遍历以及创建.zip二叉树的遍历以及创建.zip二叉树的遍历以及创建.zip二叉树的遍历以及创建.zip二叉树的遍历以及创建.zip二叉树的遍历以及创建.zip二叉树的...
二叉树的遍历C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历实例C语言二叉树遍历...
本报告基于二叉树的遍历方法,旨在通过递归和非递归两种方法创建一棵二叉树,并对其进行先序遍历、中序遍历、后序遍历及层次遍历,并求出该二叉树的深度和叶子结点数。同时,报告还实现了查找功能,能够输入一个结点...
在这个主题中,我们将深入探讨二叉树的三种主要遍历方法:前序遍历、中序遍历和后序遍历,以及它们在C++中的实现方式。 1. **前序遍历**:前序遍历的顺序是根节点 -> 左子树 -> 右子树。在C++中,递归实现可以如下...
1. 二叉树遍历的概念与目的: 遍历二叉树是为了访问树中的所有节点,按照特定的顺序执行操作,如查找、插入或删除节点。在二叉树的应用中,遍历常用于解决问题,如查找特定属性的节点,或者对所有节点进行统一处理。...
数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例...
用C++写的,包括二叉树的构建,二叉树的先序遍历、中序遍历和后序遍历非递归算法。
完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全二叉树的层序遍历-labview完全...
这是数据结构中二叉树的后序遍历的非递归算法的源代码。
c语言中关于二叉树的先序遍历,链表的创建
/* 设栈元素为二叉树的指针类型 */ typedef struct { QElemType *base; int front; /* 头指针,若队列不空,指向队列头元素 */ int rear; /* 尾指针,若队列不空,指向队列尾元素的下一个位置 */ } SqQueue; ...
通过这些工具,我们可以更直观地理解和操作二叉树,比如观察不同遍历方式下的节点顺序,或者查看经过插入操作后二叉搜索树的形态,从而加深对二叉树遍历和排序的理解。 总之,二叉树的遍历和排序是计算机科学中基础...
在二叉树的遍历中,中序遍历是一种常见的方法,它遵循“左-根-右”的访问顺序,即首先遍历左子树,然后访问根节点,最后遍历右子树。 在二叉链表作为存储结构的二叉树中,每个节点包含数据域(用于存储节点的值)和...
二叉树的遍历 C语言 数据结构课设 本文将详细讲解二叉树的遍历的实现,包括二叉树的存储、先序遍历、中序遍历、后序遍历和叶子结点的统计。 一、需求分析 二叉树的遍历是数据结构课程的经典案例,本文将使用 C ...
使用C++模板、类的技术实现了二叉树的中序遍历,在BC3.1已经测试成功
### 二叉树遍历的重要性及其意义 #### 一、二叉树的遍历概念 在探讨二叉树遍历的重要性和意义之前,首先需要明确什么是二叉树的遍历。简单来说,二叉树的遍历就是按照某种确定的顺序访问二叉树中的所有节点的过程...
二叉树的递归遍历 二叉树是一种重要的数据结构,它广泛应用于计算机科学和信息技术领域。二叉树的遍历是指从二叉树的根结点出发,访问树中每个结点的过程。二叉树的遍历有多种方式,本文将介绍二叉树的递归遍历,...