题目链接 814. 二叉树剪枝 题目分析 这个题目给一棵二叉树,如果当前子树中不存在1,就要把这个子树从整棵树上剪掉。 遇到树的问题我们一般用递归的方法解决,递归主要有以下几个问题 结束条件 子递归条件 子递归的返回值的处理 对于树来说,结束条件一般是访问到空结点。在本题中也一样,同时我们每次的子递 ...
分类:
其他好文 时间:
2020-06-29 13:16:16
阅读次数:
43
###题目描述 二叉树是一种基本的数据结构,它要么为空,要么由根节点,左子树和右子树组成,同时左子树和右子树也分别是二叉树。 当一颗二叉树高度为 \(m?1\) 时,则共有 \(m\) 层。除 \(m\) 层外,其他各层的结点数都达到最大,且结点节点都在第 \(m\) 层时,这就是一个满二叉树。 现 ...
分类:
其他好文 时间:
2020-06-29 09:52:35
阅读次数:
50
首先建立一个xml文件,建立一些信息 那我建立的信息打个比方 peoples(根节点)-> people(子结点) -> 子结点中有具体的个人信息等 下面我直接用代码说明我是如何解析这个xml文件的 首先我建立了一个类来存储我的信息 以下是我解析xml文件的代码 得到的结果如图: ...
根据自己对于对于遍历的理解 前序遍历:中左右 中序遍历:左中右 后序遍历:左右中 对于前序和中序,可以只改变一些printf的顺序 所以前中后名称都是针对中间(根)的结点,所以后序遍历是不可以直接移动printf的位置的,因为对于每个结点不能直接出栈,出栈输出的时候需要判断2点 1.这个节点有没有右 ...
分类:
其他好文 时间:
2020-06-28 22:34:15
阅读次数:
72
借助全局变量 max 存储全局最优解,遍历以所有节点为头结点的子树。 static final int LEFT = -1; static final int RIGHT = 1; int max = 0; public final int longestZigZag(TreeNode root) ...
分类:
其他好文 时间:
2020-06-28 22:15:48
阅读次数:
67
二叉排序树(BST) 二叉排序树,又称二叉查找树(BST) 左子树结点值<根节点值<右子树结点值 如果用中序遍历来遍历一棵二叉排序树的话,可以得到一个递增的有序数列 左根右 二叉排序树的查找 //二叉排序树结点 typedef struct BSTNode{ int key; struct BSTN ...
分类:
编程语言 时间:
2020-06-28 13:17:50
阅读次数:
111
树——存储结构 双亲表示法(顺序存储) 双亲表示法:每个节点中保存指向双亲的“指针” #define MAX_TREE_SIZE 100 //树中最多的结点数 typedef struct{ //树的结点定义 ElemType data; //数据元素 int parent; //双亲位置域 }PT ...
分类:
其他好文 时间:
2020-06-28 13:06:22
阅读次数:
76
线索二叉树(找前驱/后继) 建立线索的初衷就是为了在一个结点中能够更方便找到前驱结点和后继结点。 中序线索二叉树 先序线索二叉树 后序线索二叉树 中序线索二叉树找中序后继 //找到以p为跟的子树中,第一个被中序遍历的结点 ThreadNode *Firstnode(ThreadNode *p){ / ...
分类:
其他好文 时间:
2020-06-28 12:47:39
阅读次数:
107
一、思维导图: 二、需要留意的点 链式结构可以进行二分查找,但是不能在对数时间内完成,因为要对数字下标进行随机访问,实际都得遍历一遍,需要O(n) 二分查找应用场景的局限性: (1)基于顺序表的存储结构; (2)针对有序数据; (3)数据量小且比较操作不耗时时 (4)数据量不能太大(需要连续的内存空 ...
分类:
其他好文 时间:
2020-06-27 20:12:59
阅读次数:
66
一、第七章内容小结 1. 查找的基本概念 2. 线性表的查找 ① 顺序查找:从表的一端开始依次将记录的关键字和给定值进行比较,某记录的关键字和定值相等则查找成功;反之,扫描整个表未找到相等记录,则查找失败。顺序查找适用于线性表的顺序存储结构和链式存储结构。 2-1基于顺序表的顺序查找算法: 1 in ...
分类:
其他好文 时间:
2020-06-27 16:03:50
阅读次数:
78