数据结构--树

 是一种经常用到的数据结构,用来模拟具有树状结构性质的数据集合。

树里的每一个节点有一个根植和一个包含所有子节点的列表。从图的观点来看,树也可视为一个拥有N 个节点N-1 条边的一个有向无环图。

二叉树是一种更为典型的树树状结构。如它名字所描述的那样,二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。

树的遍历 - 介绍
  • 前序遍历
  • 中序遍历
  • 后序遍历
  • 递归和迭代

    前序遍历


    前序遍历首先访问根节点,然后遍历左子树,最后遍历右子树

    中序遍历


    中序遍历是先遍历左子树,然后访问根节点,然后遍历右子树。

    后序遍历


    后序遍历是先遍历左子树,然后遍历右子树,最后访问树的根节点。

  •  

    值得注意的是,当你删除树中的节点时,删除过程将按照后序遍历的顺序进行。 也就是说,当你删除一个节点时,你将首先删除它的左节点和它的右边的节点,然后再删除节点本身。

    另外,后序在数学表达中被广泛使用。 编写程序来解析后缀表示法更为容易。 这里是一个例子:

     

     

     

     

    您可以使用中序遍历轻松找出原始表达式。 但是程序处理这个表达式时并不容易,因为你必须检查操作的优先级。

    如果你想对这棵树进行后序遍历,使用栈来处理表达式会变得更加容易。 每遇到一个操作符,就可以从栈中弹出栈顶的两个元素,计算并将结果返回到栈中。

     

     层序遍历 - 介绍

     

    层序遍历就是逐层遍历树结构。

    广度优先搜索是一种广泛运用在树或图这类数据结构中,遍历或搜索的算法。 该算法从一个根节点开始,首先访问节点本身。 然后遍历它的相邻节点,其次遍历它的二级邻节点、三级邻节点,以此类推。

    当我们在树中进行广度优先搜索时,我们访问的节点的顺序是按照层序遍历顺序的。

    通常,我们使用一个叫做队列的数据结构来帮助我们做广度优先搜索

posted @ 2019-12-02 23:43  任仁人  阅读(94)  评论(0编辑  收藏  举报