树与二叉树

原创 2018年04月17日 16:42:47

树的基本概念:



1、结点的度

   结点的度是子结点的个数。

   例如:结点1有三个字结点2,3,4,所以结点1的度为3。

2、树的度

   树的度等于所有结点度中度最高的值。 

   例如:上图中结点度最高为3,所以树的度为3。

3、叶子结点

   叶子结点是度为0的结点即没有子结点的结点。

   例如:上图中3,5,6,7,9,10。

4、分支结点

   分支结点是除了叶子结点,树中的其他所有结点。

   例如:上面树的分支结点为1,2,4,8。

5、内部结点

   内部结点是除了根结点以及叶子结点或在分支结点的基础之上在去掉根结点。

    例如:上图中树的内部结点为2,4,8。

6、父结点、子结点、兄弟结点

   父节点、子结点和兄弟结点是相对而言的。

    例如:上图中结点1是结点2,3,4的父节点,结点2,3,4也是结点1的子结点,结点2,3,4又是兄弟结点。

7、层次

   图中我们已经表出来了,根为第一层,根的孩子为第二层,依此类推,若某结点在第i层,则其孩子结点在第i+1层。


树的遍历


1、前序遍历

   基本思想:前序遍历就是先访问根结点,再访问叶子结点。
   图中树的前序遍历为:1,2,5,6,7,3,4,8,9,10。
2、后序遍历
基本思想:本后序遍历就是先访问子结点,再访问根结点。
   图中树的后序遍历为:5,6,7,2,3,9,10,8,4,1
3、层次遍历
   基本思想:从第一层开始,依此遍历每层,直到结束。

   图中树的层次遍历为:1,2,3,4,5,6,7,8,9,10


二叉树的概念和特性


一般二叉树性质:


完全二叉树性质:
1)具有n个节点的完全二叉树的深度为[log2n]+1,其中[log2n]+1是向下取整
2)若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点:
(1) 若 i=1,则该结点是二叉树的根,无双亲, 否则,编号为 [i/2] 的结点为其双亲结点;  
(2) 若 2i>n,则该结点无左孩子,否则,编号为 2i 的结点为其左孩子结点;
(3) 若 2i+1>n,则该结点无右孩子结点,否则,编号为2i+1 的结点为其右孩子结点。


满二叉树性质:

  在满二叉树中,叶节点的个数比分支节点的个数多1


二叉树遍历


1、前序遍历(与树的前序遍历一样)
      基本思想:先访问根结点,再先序遍历左子树,最后再先序遍历右子树即根—左—右。

      图中前序遍历结果是:1,2,4,5,7,8,3,6


2、中序遍历
      基本思想:先中序遍历左子树,然后再访问根结点,最后再中序遍历右子树即左—根—右。

      图中中序遍历结果是:4,2,7,8,5,1,3,6


3、后序遍历
      基本思想:先后序遍历左子树,然后再后序遍历右子树,最后再访问根结点即左—右—根。

      图中后序遍历结果是:4,8,7,5,2,6,3,1


4、层次遍历(与树的层次遍历一样)
      基本思想:从第一层开始,依此遍历每层,直到结束。

      图中层次遍历结果是:1,2,3,4,5,6,7,8



树与二叉树区别
1、树可以有多个子结点,二叉树最多只能两个结点。
2、树中的子结点是无序的,二叉树是分左子结点和右子结点。
3、二叉树不是特殊树,而是独立的数据结构。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ght886/article/details/79976008

数据结构基础系列(6):树和二叉树

数据结构课程是计算机类专业的专业基础课程,在IT人才培养中,起着重要的作用。课程按照大学计算机类专业课程大纲的要求,安排教学内容,满足需要系统学习数据结构的人。系列课程包含11个部分,本课为第6部分“树和二叉树”,介绍树的相关概念和表示方法,重点是二叉事的性质、存储结构、遍历等基本操作的实现,以及应用基本操作解决问题的方法。
  • 2015年10月18日 06:22

树和二叉树 树和二叉树

  • 2010年05月09日 18:07
  • 2.37MB
  • 下载

树和二叉树6.files

  • 2009年02月09日 14:38
  • 17KB
  • 下载

树和二叉树的转换

树和二叉树是两种不同的数据结构,树实现起来比较麻烦,但是树可以转换为二叉树进行处理,处理完以后再从二叉树还原为树。 下面说说转换的方法: 1. 树转换为二叉树 (1) 树中所有相同双亲结点的兄弟...
  • T_27080901
  • T_27080901
  • 2015-03-12 20:23:35
  • 5370

一般树与二叉树的相互转换

一般来说,直接对一般树做一些相关操作非常对不方便。因此,将一般树转换为二叉树,操作完成后逆转为一般树成为了大部分人对付一般树的方法。 一般树转换二叉树: 1)将每一个结点与他的兄弟结点之间连一条线。 ...
  • qq_36785187
  • qq_36785187
  • 2017-06-10 16:51:22
  • 1740

你应该掌握的——树和二叉树

我在上课的时候,由于各种原因,上课老师讲的自己总不爱听,现在到火烧眉毛了,才知道这些基础知识的重要性,现在想想,也没有那么的困难。重在理解这些底层的概念,然后考试考的都是一些很简单的概念和计算,在这里...
  • yi_zz
  • yi_zz
  • 2012-03-27 01:05:22
  • 18089

树与二叉树的转换、树的遍历

树和二叉树不同,可以有0到n个孩子,所以实现起来很麻烦,但我们可以借助树的孩子兄弟表示法把树转换成二叉树。 在孩子兄弟表示法中,某个结点的第一个孩子结点的指针是二叉树中其左孩子结点指针,右兄弟结点指...
  • sinat_32561655
  • sinat_32561655
  • 2017-05-05 16:08:08
  • 1023

数据结构编程笔记十五:第六章 树和二叉树 树和二叉树的转换算法实现

上次已经介绍了递归算法以及二叉树的基本操作,最重要的就是二叉树的遍历算法。这次主要是介绍树的孩子兄弟表示法以及树和二叉树的转换。还是老规矩:程序在码云上可以下载。 地址:https://git.o...
  • u014576141
  • u014576141
  • 2017-08-24 16:57:32
  • 594

二叉树与树的理解

1. 树形结构 vs 线性结构树和链表、队列、栈等结构一样,也是一些基本元素的汇集,单元素之间不是简单的线性关系(在一个包含 nn 个元素的数据结构里),可能存在更为复杂的联系。...
  • lanchunhui
  • lanchunhui
  • 2016-08-16 11:26:32
  • 1387

普通树转化成二叉树

普通树转化成二叉树。
  • sddxqlrjxr
  • sddxqlrjxr
  • 2016-04-04 21:11:25
  • 3369
收藏助手
不良信息举报
您举报文章:树与二叉树
举报原因:
原因补充:

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