数据结构与算法之树

Posted bo1990

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法之树相关的知识,希望对你有一定的参考价值。

树除了根节点之外每个结点只有一个父节点,根节点没有父节点,除了叶结点之外所有结点都有一个或多个子节点,叶节点没有子节点,父节点和子结点之间用指针连接。

一般大部分都是二叉树,即每个结点最多只能有两个子结点。遍历方式有三种:前序(根-左-右)、中序(左-根-右)、后序9左-右-根);

struct BinaryTreeNode

    int m_nValue;
    BinaryTreeNode *m_pLeft;
    BinaryTreeNode *m_pRight;
;

1 重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历都不含有重复的数字。

  • BinaryTreeNode *Construct(int *preorder, int *inorder, int length);

解题思路:

(1)根据preorder的第一个数字,遍历inorder找到该数字,即确定了根结点的位置;

(2)inorder中根结点左边为左子树,右边为右子树,再结合preorder就找到左子树和右子树对应的前序序列和中序序列;

(3)用同样的方法分别去构建左子树和右子树,即用递归完成;

2 未完待续~

以上是关于数据结构与算法之树的主要内容,如果未能解决你的问题,请参考以下文章

数据结构和算法 数据结构基础之树二叉树

布局算法之树布局

算法基础知识之树二叉树,

算法基础知识之树二叉树

数据结构之树与二叉树

python数据结构之树