以下的内容做为学习笔记,复制别人的,感觉总结的比较好:第5章树和二叉树本章中主要介绍下列内容: 1.树的定义和存储结构 2.二叉树的定义、性质、存储结构 3.二叉树的遍历、线索算法 4.树和二叉树的转换 5.哈夫曼树及其应用课时分配: 1、2两个学时,3四个学时,4两个学时, 5两个学时,...
分类:
其他好文 时间:
2015-11-02 00:00:17
阅读次数:
483
本文针对[数据结构基础系列(6):树和二叉树]第1-10课时1 树结构导学
2 树的基本概念
3 树的基本术语
4 树的性质
5 树的存储结构
6 二叉树概念和性质
7 二叉树与树、森林之间的转换
8 二叉树的存储结构
9 二叉树的基本运算及其实现
10 二叉树的遍历【项目1 - 二叉树算法库】 定义二叉树的链式存储结构,实现其基本运算,并完成测试。
要求:
1、...
分类:
其他好文 时间:
2015-10-25 12:18:57
阅读次数:
225
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三...
分类:
其他好文 时间:
2015-10-21 12:36:33
阅读次数:
148
首先我们先拿一个例子来讲吧,这样比较形象直观。二叉树的遍历大概分为四种,分别是前序遍历,中序遍历,后序遍历,按层遍历,我们先讲一下怎么前序遍历,就是先访问根节点------左子树------右子树,如下图所示中序遍历就是先访问左子树---根节点--右子树,这个顺序。遍历的结果如下图所示然后就是后序遍...
分类:
其他好文 时间:
2015-10-09 15:14:28
阅读次数:
219
二叉树结点的定义与先序(中左右)、中序(左中右)、后序(左右中)遍历,顺便写个最大深度,都是递归实现,之后再学习非递归的方法。package leetcode;class TreeNode{ TreeNode left; TreeNode right; int val; Tr...
分类:
其他好文 时间:
2015-10-07 17:30:30
阅读次数:
131
1 二叉树的递归遍历 二叉树在数据结构中乃是重中之重,其应用非常广泛,很多数据结构都是建立在二叉树的基础上,如红黑色,平衡树等。 二叉树的定义如下: 一个有穷的结点集合。 这个集合可以为空。 若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。 可...
分类:
其他好文 时间:
2015-10-07 12:11:19
阅读次数:
286
#include #define ElemType char//节点声明,数据域、左孩子指针、右孩子指针typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//先序建立二叉树...
分类:
其他好文 时间:
2015-09-27 20:00:04
阅读次数:
124
二叉树的遍历(traversing binary tree)是指从根节点出发,按照某种次序依次访问二叉树中所有节点,使得每个节点仅被访问一次前序遍历:若二叉树为空,则空操作返回null。否则先访问根节点,然后前序遍历左子树,再前序遍历右子树中序遍历:若二叉树为空,则空操作返回null。否则从根节点开...
分类:
编程语言 时间:
2015-09-16 23:28:25
阅读次数:
314
题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。分析:队树的节点值得求和之类的操作大部分都是基于树的遍历操作的,只要对树的遍历操作稍作变形,基本都能解决问题(个人观点)。我们知道只有树的先序遍历是首先...
分类:
其他好文 时间:
2015-09-11 15:50:51
阅读次数:
144
问题:鉴于二叉搜索树。有两个节点不小心换位置,现在,我们需要修改。它不改变树的结构。分析:二叉排序树的遍历是有序。所以这个问题是建立在序模板的问题,所以我们可以先序,并配有pre指针指向当前遍历结果中的最后一个结点,即下次遍历前的前一个结点。然后就能够通过将当前结点与pre结点进行比較。来推断是否有...
分类:
其他好文 时间:
2015-09-09 19:24:38
阅读次数:
107