数据结构
zephyr_be_brave
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
转自http://www.cnblogs.com/AnnieKim/archive/2013/06/15/MorrisTraversal.html文主要解决一个问题,如何实现二叉树的前中后序遍历,有两个要求:1. O(1)空间复杂度,即只能使用常数空间;2. 二叉树的形状不能被破坏(中间过程允许改变其形状)。通常,实现二叉树的前序(preorder)、中转载 2013-09-01 15:04:58 · 1277 阅读 · 0 评论 -
Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes' values.For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3return [1,3,2].Note: Recursive solutio原创 2013-09-01 15:01:09 · 809 阅读 · 0 评论 -
动态查找表与静态查找表
数据结构中查找分为如下部分:静态查找表动态查找表哈希表及其查找以下分别对数据结构中的查找算法进行描述一静态查找表1.顺序表查找顺序查找(Sequential Search)又称为线性查找,是一种最简单的查找方法。查找过程如下:从线性表的一端开始顺序扫描线性表,依次将扫描到的结点关键字和给定值进行比较。若转载 2013-09-12 14:01:31 · 3965 阅读 · 0 评论 -
vector和list区别
stl提供了三个最基本的容器:vector,list,deque。vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。l转载 2013-09-13 13:22:22 · 635 阅读 · 0 评论 -
线段树总结
线段树可以动态地处理可映射在坐标轴上的一些线段(区间),同时可以维护这些区间的某些性质。它的优点是可以随时插入一个区间或删除一个已有区间,并用较低的代价来维护需要的性质。一个线段是对应于一个区间的。线段树是区间树的一种。1. 线段树是一棵二叉树。2.叶结点表示一个初等区间[a, a];每一个内部结点(a,b)有b-a>=1;3. 根为[a,b]的线段树为T(a,b),其左子树为T(转载 2013-10-01 21:24:25 · 684 阅读 · 0 评论 -
树状数组总结
树状数组是对一个数组改变某个元素和求和比较实用的数据结构。两中操作都是O(logn)。在解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+...+A[i]。但是不难发现,如果我们修改了任意一个A[i],S[i]、S[i+1]...S[n]都会发生变化。可以说,每次修改A[i]后,调整前缀和S[]在最坏情况下会需要O(n)的时间。当n非常大时,程序会运行得非常缓慢转载 2013-10-04 21:48:27 · 581 阅读 · 0 评论 -
Segment Tree的另一种表示方法
http://www.dgp.utoronto.ca/people/JamesStewart/378notes/22intervals/http://en.wikipedia.org/wiki/Segment_treehttp://stackoverflow.com/questions/17466218/what-are-the-differences-between-转载 2013-10-04 21:52:44 · 1431 阅读 · 0 评论 -
Segment Tree, Interval Tree,Range Tree and Binary Indexed Tree
rt原创 2013-10-05 14:41:13 · 1519 阅读 · 0 评论
分享