C算法精解---树的基础知识

  数据结构中为了存储和查找的方便,用各种树结构来存储文件。树的应用相当广泛,在数据库系统、用户界面、表达式处理、人工智能、时间调度、优先级队列、赫夫曼编码等都有应用。下面就和大家一起来学习树。首先了解下树的一些概念、性质、二叉树的遍历及树分类。先看下面的导图吧

C算法精解---树的基础知识_第1张图片

 

遍历二叉树

  上面的导图对遍历二叉树的方法进行了划分。二叉树的先序、中序及后序遍历的算法一般是由递归来实现的。我们首先来看下面的图。

上图画个有点难看了,凑合看吧。

先序遍历(根,左,右) 以根节点A中心蓝线划分为左右树。

   先遍历根节点A,然后遍历左子树B,B树无左子树,那就遍历右子树C(C又是D的父节点),然后遍历右子树D。这时A的左子树部分全部遍历完毕。遍历右子树。依照这种思路完成E F G H K的遍历。

中序遍历(左,根,右)

   先遍历左子树,这时看到B(是C的父节点)无左子树,所以首先遍历B;然后遍历B的右子树,会看到C是D的父节点,D是C的左子树。依照遍历的原则,首先遍历D ,再遍历D的父节点C。此时,A的左子树遍历完毕,在遍历根节点A,然后是右子树。依次。。E H G K F。

后序遍历(左,右,根)

   按照上面的思路和方法,相信大家也很容写出后续遍历的顺利。

 下面有2个练习,知道其中的2个遍历顺序,画出连接图

1)先序遍历 A B E F C D H G

  中序遍历  F E C B D H A G

2) 中序遍历 C B H E K D I F A G J

  后序遍历 C H B K E I F J G A D

 图片画得比较丑了,凑合看吧!

C算法精解---树的基础知识_第2张图片

 

     

  

 

 

 

 

 

 

你可能感兴趣的:(数据结构,linux,linux,linux,算法,二叉树,树)