码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构与算法之树

时间:2019-09-01 15:00:22      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:个数   style   数据结构   第一个   方式   const   部分   结构   前序遍历   

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

一般大部分都是二叉树,即每个结点最多只能有两个子结点。遍历方式有三种:前序(根-左-右)、中序(左-根-右)、后序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 未完待续~

数据结构与算法之树

标签:个数   style   数据结构   第一个   方式   const   部分   结构   前序遍历   

原文地址:https://www.cnblogs.com/bo1990/p/11442056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!