在上一篇:二叉树基本操作 中,我们描述了二叉树的递归遍历函数。在这里主要是给出这些函数的测试代码,为了测试更加方便,我们实现了三个新的函数:建立二叉树、统计二叉树叶子节点数量、统计二叉树总节点数量。(二叉树的定义用上篇文章中的定义) 二叉树建立: 1 tree_pointer create_b...
分类:
其他好文 时间:
2014-06-28 22:22:38
阅读次数:
232
1. 聚集索引聚集索引(clustered index)就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的为整张表的行记录数据。也将聚集索引的叶子节点称为数据页。同B+树数据结构一样,每个数据页都通过一个双向链表进行链接。由于实际的数据页只能按照一棵B+树进行排序,因此每张表只能拥有一个聚集索...
分类:
其他好文 时间:
2014-06-17 00:46:55
阅读次数:
327
二叉树的删除可以算是二叉树最为复杂的操作,删除的时候要考虑到很多种情况:
1.被删除的节点是叶子节点
2.被删除的节点只有左孩子节点
3.被删除的节点只有右孩子节点
4.被删除的有两个孩子节点
所以在删除的时候,这4种情况都必须考虑进去,并且这4中情况之下,还会有细的划分,下面就细说怎么删除。
在二叉树中想要删除一个节点,首先需要找到这个节点,由于二叉树在插入节点的时候会遵...
分类:
其他好文 时间:
2014-06-16 21:00:10
阅读次数:
190
包含列索引概述包含列索引也是非聚集索引,索引结构跟聚集索引结构是一样,有一点不同的地方就是包含列索引的非键列只存储在叶子节点;包含列索引的列分为键列和非键列,所谓的非键列就是INCLUDE中包含的列,至少需要有一个键列,且键列和非键列不允许重复,非键列最多允许1023列(也就是表的最多列-1),由于...
分类:
数据库 时间:
2014-06-15 22:14:00
阅读次数:
294
首先将原图中的连通分量缩点,一定可以将原图缩成一棵树的形式,然后统计这棵树的叶子节点个数,答案就是(leaf+1)/2。这里不再证明,可以画个图看一下。(简单说明一下,首先把两个最近公共祖先最远的两个叶节点之间连接一条边,这样可以把这两个点到祖先的路径上所有点收缩到一起,因为一个形成的环一定是双连通...
分类:
其他好文 时间:
2014-06-15 11:33:53
阅读次数:
247
原文:SQL Server 索引和表体系结构(三)包含列索引概述包含列索引也是非聚集索引,索引结构跟聚集索引结构是一样,有一点不同的地方就是包含列索引的非键列只存储在叶子节点;包含列索引的列分为键列和非键列,所谓的非键列就是INCLUDE中包含的列,至少需要有一个键列,且键列和非键列不允许重复,非键...
分类:
数据库 时间:
2014-06-14 23:51:31
阅读次数:
470
二进制文件,主要存储的八叉树叶子节点,读取的时候再构建八叉树。
分类:
其他好文 时间:
2014-06-08 21:46:54
阅读次数:
249
题目来源:Light OJ 1291 Real Life Traffic
题意:最少添加几条边 可以使全图边双连通
思路:缩点 重新构图 答案就是(叶子节点数+1)/ 2
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 10010;
struct Edge
{
i...
分类:
其他好文 时间:
2014-06-08 02:57:26
阅读次数:
276
1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN)。线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a...
分类:
其他好文 时间:
2014-06-07 16:55:29
阅读次数:
307
package com.shiyeqiang.tree;
import java.util.Stack;
public class BiTree {
public static void main(String[] args) {
// 首先构造叶子节点
BiTree leafA1 = new BiTree(4);
BiTree leafA2 = new BiTree(5);...
分类:
其他好文 时间:
2014-06-04 13:54:31
阅读次数:
374