五分钟一个设计模式,用最简单的方法来描述设计模式。遍历一棵树在基于关系型数据库的应用程序中,一对多的关系是在太多了,那么如何来轻松地遍历一棵树呢?
我们今天来介绍一个专门为树形结构而生的设计模式,组合模式。
一棵树包括分支节点和叶子节点,我们让他们实现同样的接口public interface IComponent
{
string GetInfo();
}定义分直接点类public c...
分类:
其他好文 时间:
2015-06-01 09:48:22
阅读次数:
101
题目描述 之前提到过,线段树之所以更新查询快,是因为区间更新有lazy标记使得不需要每次都操作到叶子节点。 但是如果要操作一个节点时,其父节点上的lazy标记应当被释放,否则该节点无法得到最新的正确结果。 因而lazy标记下放的策略是在需要操作某个节点的子节点时,将该节点的lazy标记全部下放。见第...
分类:
其他好文 时间:
2015-05-31 23:10:29
阅读次数:
120
1 /* 2 hdu-4027 3 题目:区间开根求和查询; 4 因为是开根,所以要更新的话就要更新到叶子节点。如果区间里全是1或是0的话就步用继续更新了,查询的时候正常查询; 5 */ 6 #include 7 #include 8 #include 9 #...
分类:
其他好文 时间:
2015-05-31 19:53:51
阅读次数:
134
堆的定义、堆的存储和堆排序一. 堆的定义、堆的存储、堆排序在堆排序 Heap Sort中介绍的比较好,堆排序主要涉及两个问题:如何由一个无序序列构造初始堆?由于叶节点已经满足了堆的性质,所以只需从最后一个非叶子节点向下调整,然后从倒数第二个非叶子节点向下调整,...,最后从堆顶向下调整。这一过程可以...
分类:
编程语言 时间:
2015-05-27 11:49:33
阅读次数:
227
$(function() {
$('#tt').combotree({
url: 'getTree.do',
onBeforeSelect: function(node) {
if (!$(this).tree('isLeaf', node.target)) {
return false;
...
分类:
其他好文 时间:
2015-05-26 23:29:10
阅读次数:
196
堆堆:经过排序的完全二叉树,其中任一非叶子节点的值均不大于(或不小于)其左孩子和右孩子结点的值。最大堆和最小堆是二叉堆的两种形式。最大堆:根节点的键值是所有堆结点键值中最大者。最小堆:根节点的键值是所有堆结点键值中最小者。最大-最小堆:集结了他俩的优点。是最大层和最小层交替出现的二叉树,即最大层节点...
分类:
其他好文 时间:
2015-05-26 01:37:39
阅读次数:
222
水题一道,没有用到特别的方法。
根据 000,010,111,110 这些二进制数字转化为十进制得知该查询是哪一个叶子节点的值。#include
#include
#include
#include
using namespace std;const int maxn = 10+2;
int n,m;
int labe...
分类:
其他好文 时间:
2015-05-24 01:26:32
阅读次数:
206
给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)
样例
给出一棵二叉树:
1
/ 2 3
返回 6
分析:每条最长路径都肯定会以某个顶点为跟,然后两边是以那个节点为跟到叶子节点的最长路径。
代码:
/**
* Definition of Tre...
分类:
其他好文 时间:
2015-05-21 22:34:54
阅读次数:
268
概念:线段树(Segment Tree)是一种二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左子树表示的区间为[a,(a+b)/2],右子树表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树。叶节点数目为N,即整个线段区间的长度。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。——摘自维基百科...
分类:
其他好文 时间:
2015-05-19 10:52:02
阅读次数:
114
从二叉查找树上删除节点的操作复杂程度取决于删除哪个节点。如果删除没有子节点的节点就非常简单,如果节点只有一个子节点,不管是左子节点还是右子节点,就变得稍微有点复杂,如果节点包含两个子节点就最复杂。
如果待删除节点是叶子节点,那么只需要将从父节点指向它的链接指向null。
如果待删除节点只包含一个子节点,那么原本指向它的节点就得使其指向它的子节点。
...
分类:
编程语言 时间:
2015-05-18 09:13:39
阅读次数:
127