摘要:
树 LCA:1151 。 阅读全文
摘要:
普通的层序遍历是自下而上,从左至右; 这里刚好相反, 对于这样的问题,一般采用栈,栈能够实现序列的逆序。 因此,普通的层序遍历+栈,就能够解决这个问题。 阅读全文
摘要:
在学习计算机组成原理的时候,看到大端小端模式,便想实验一下,首先介绍一下 C 中的union,这个平时用得少,估计在单片机这种可能会运用,在平时写代码的时候几乎是用不着union的。 union:联合 联合从外观上看上去和结构体差不过,都是多种数据构成的集合。 其最大的特点:所有的元素共享同一块地址 阅读全文
摘要:
线索二叉树利用二叉树空余的指针域,来实现二叉树的链式化。然后,就可以通过前驱,后继像双向链表一样根据某种遍历次序对树的结点进行访问。 数据结构: 线索二叉树的操作: 建立线索二叉树: 不同的遍历顺序,会得到不同的线索二叉树。 一般使第线索链表的头和尾指向NULL(也可以加入一个头指针) 不同的遍历顺 阅读全文
摘要:
基于深度的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 阅读全文
摘要:
概念: 堆:从逻辑角度上来看是一棵完全二叉树,从物理结构来看,一般是顺序存储结构(数组)。 堆保证一种性质:堆中某个节点的值总是不大于或不小于其父节点的值; 我们通常使用的都是二叉树,二叉堆,因此用二叉堆进行讲解。 分类:大根堆(根结点的权值大于等于子结点的权值),小根堆。 基本数据结构: 因为堆是 阅读全文
摘要:
在写 “根据中序和后序遍历顺序,构建树的问题” 时,原本这只是一个非常简单的问题,但是突然发现一直有错误。代码如下: 一直发现缺少某些元素,最后发现,改为下列代码时,正确运行: 错误原因在于局部变量的作用域,在错误的情况,我定义的是普通的局部变量,开辟的内存空间位于stack memory,当函数结 阅读全文