摘要: 树 LCA:1151 。 阅读全文
posted @ 2019-09-21 12:22 B_luePhantom 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 普通的层序遍历是自下而上,从左至右; 这里刚好相反, 对于这样的问题,一般采用栈,栈能够实现序列的逆序。 因此,普通的层序遍历+栈,就能够解决这个问题。 阅读全文
posted @ 2019-09-18 09:37 B_luePhantom 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 在学习计算机组成原理的时候,看到大端小端模式,便想实验一下,首先介绍一下 C 中的union,这个平时用得少,估计在单片机这种可能会运用,在平时写代码的时候几乎是用不着union的。 union:联合 联合从外观上看上去和结构体差不过,都是多种数据构成的集合。 其最大的特点:所有的元素共享同一块地址 阅读全文
posted @ 2019-09-17 22:21 B_luePhantom 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 线索二叉树利用二叉树空余的指针域,来实现二叉树的链式化。然后,就可以通过前驱,后继像双向链表一样根据某种遍历次序对树的结点进行访问。 数据结构: 线索二叉树的操作: 建立线索二叉树: 不同的遍历顺序,会得到不同的线索二叉树。 一般使第线索链表的头和尾指向NULL(也可以加入一个头指针) 不同的遍历顺 阅读全文
posted @ 2019-09-15 09:36 B_luePhantom 阅读(1804) 评论(0) 推荐(0) 编辑
摘要: 根据前序遍历和中序遍历序列建树: 根据后序遍历和中序遍历序列建树: 阅读全文
posted @ 2019-09-12 11:53 B_luePhantom 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 关键点: 阅读全文
posted @ 2019-09-12 11:06 B_luePhantom 阅读(4540) 评论(0) 推荐(0) 编辑
摘要: 基于深度的LCA算法: 对于两个结点u、v,它们的深度分别为depth(u)、depth(v),对于其公共祖先w,深度为depth(w),u需要向上回溯depth(u)-depth(w)步,v需要depth(v)-depth(w)步。 因此,只需要u,v中深度较大的向上移,直到 depth(u)=d 阅读全文
posted @ 2019-09-11 12:10 B_luePhantom 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 概念: 堆:从逻辑角度上来看是一棵完全二叉树,从物理结构来看,一般是顺序存储结构(数组)。 堆保证一种性质:堆中某个节点的值总是不大于或不小于其父节点的值; 我们通常使用的都是二叉树,二叉堆,因此用二叉堆进行讲解。 分类:大根堆(根结点的权值大于等于子结点的权值),小根堆。 基本数据结构: 因为堆是 阅读全文
posted @ 2019-09-06 17:35 B_luePhantom 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 在写 “根据中序和后序遍历顺序,构建树的问题” 时,原本这只是一个非常简单的问题,但是突然发现一直有错误。代码如下: 一直发现缺少某些元素,最后发现,改为下列代码时,正确运行: 错误原因在于局部变量的作用域,在错误的情况,我定义的是普通的局部变量,开辟的内存空间位于stack memory,当函数结 阅读全文
posted @ 2019-09-06 15:05 B_luePhantom 阅读(407) 评论(0) 推荐(0) 编辑