树
KageMushaHRo
懒 狗
展开
-
【树形结构专题】二叉搜索树
二、二叉搜索树BST 二叉搜索树,也叫二叉排序树,在二叉树的基础上做了如下改动: 要么为空树,要么满足下面这个条件 任何结点的左子树结点权值都要小于或等于该节点权值,任何结点的右子树结点权值都要大于该节点权值。 1.BST每个节点的存储结构和初始化与二叉树相同: struct Node { int val; //存储的值 Node* left; Node* right; //分别代表左孩子和右孩子 }; Node* root = NULL; //根节点为空 Node* newNode(int x原创 2020-05-19 22:13:23 · 153 阅读 · 0 评论 -
【树形结构专题】二叉树
一、二叉树 二叉树,顾名思义,就是每个节点都有两个分支,最后构成的树形结构。 1.先看一下二叉树每个节点的存储结构: struct Node { int val; //存储的值 Node* left; Node* right; //分别代表左孩子和右孩子 }; Node* root = NULL; //根节点为空 2.再看一下如何创建一个新的节点: Node* newNode(int x) { Node* node = new Node(); node->val = x; node-&g原创 2020-05-19 20:58:03 · 302 阅读 · 0 评论 -
P1030 求先序排列
P1030 树形结构里的经典题,也是必备的入门题 首先,放上一个结论,如若想唯一确定一个树,必须得至少已知它的中序遍历,否则不管你哪怕知道前序、后序、层序遍历,也无法唯一确定一个树。 一、已知先序中序求后序 第一步,先序遍历第一个位置肯定是根节点,然后在中序遍历中确定该根结点的位置 第二步,确定好位置后,即可分别对左子树和右子树进行递归 具体左子树和右子树的一个范围下标在图中已经很明显了,就不再做多余解释。 直接干代码: void post_order(int x, int y, int p, int q原创 2020-05-19 14:47:46 · 242 阅读 · 0 评论