随笔分类 - 

分桶法和平方分割
摘要:分桶法(bucket method) 是把一排物品或者平面分成桶,每个桶分别维护自己内部的信息,以达到高效计算的目的的方法。 未完待续
343
0
0
树状数组(Binary Indexed Tree)
摘要:树状数组(Binary Indexed Tree,BIT) 是能够完成下述操作的数据结构。 给一个初始值全为 0 的数列 a1, a2, ..., an (1)给定 i,计算 a1+a2+...+ai (2)给定 i 和 x,执行 ai += x 1.基于线段树的实现 如果使用线段树,只需要做少许修
402
0
0
二叉树的表达式求值
摘要:问题描述: 输入一个表达式(表达式中的数均为小于10的正整数),利用二叉树来表示该表达数,创建表达式树,然后利用二叉树的遍历操作求表达式的值。 输入要求: 多组数据,每组一行,以‘=’结尾。当输入只有一个‘=’时, 输入结束。 输出要求: 每组数据输出一行为表达式的值。 样例: 输入样例: 1+2-
3831
0
1
AVL平衡二叉树的各种问题(Balanced Binary Tree)
摘要:AVL树或者是一棵空树,或者是具有以下性质的非空二叉搜索树: 1. 任一结点的左、右子树均为AVL树; 2.根结点左、右子树高度差的绝对值不超过1. 1.声明 #include<iostream> #include<cstdio> #include<queue> using namespace st
354
0
0
2.5.2 优先队列
摘要:1.时间复杂度:最小堆 n个结点的完全二叉树(堆是完全二叉树)的深度为h(根的深度为1),则h和n之间满足 2^(h-2) <n <= 2^h,h近似等于log(n)+1。 从代码的直观来看,每次调整一个结点需要log(n),一共调整(n-1)/2个结点,故时间复杂度为O(nlogn),但要注意在中
167
0
0
2.4.1 线段树
摘要:1.线段树的概念: 线段树是擅长处理区间的,形如下图的数据结构。线段树是一颗完美二叉树(Perfect Binary Tree),树上的每个节点都维护一个区间。根维护的是整个区间,每个节点维护的是父亲的区间二等分后的其中一个子区间。当有n个元素时,对区间的操作可以在O(log n)的时间内完成。 根
247
0
0
二叉搜索树的各种问题
摘要:1.插入 BinTree Insert( BinTree BST, ElementType X ){ if(!BST){ BST=(BinTree )malloc(sizeof(struct TNode)); BST->Data =X; BST->Left =BST->Right =NULL; }
325
0
0
二叉搜索树BST(Binary Search Tree)
摘要:二叉搜索树(Binary Search Tree)也叫二叉排序树或二叉查找树。它满足以下性质: 1.非空左子树的所有键值小于其根结点的键值; 2.非空右子树的所有键值大于其根结点的键值; 3.左右子树都是二叉搜索树。
199
0
0
二叉树的建立和遍历的各种问题
摘要:链表声明: 点击查看代码 //基本结构声明 #include<iostream> #include<queue> #include<stack> #include<cstdio> #define NoInfo 0 // 0表示没有结点 using namespace std; typedef int
693
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起