本周数据结构老师给我们上了“图”。 图是另一种应用极为广泛的非线性数据结构。 关于图的相关术语: 无向图:在一个图中,任意二个顶点之间连线没有方向叫做无向图。 有向图:在一个图中,任意二个顶点之间连线有方向的叫做有向图。 无向图中二个顶点之间的连线称为边。 有向图中二个顶点之间的连线称为弧。 弧头是 ...
分类:
其他好文 时间:
2016-05-13 13:44:59
阅读次数:
99
什么是Hash
Hash,也可以称为“散列”,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出(也就是多对一的关系)。
哈希表的构造
在所有的线性数据结构中,数组的定位速度最快,因为它可通过数组下标直接定位到相应的数组空间,就不需要一个个查找。而哈希表就是利用数...
分类:
其他好文 时间:
2016-05-07 06:59:49
阅读次数:
764
ArrayList是一种线性数据结构,它的底层是用数组实现的,相当于动态数组。与Java中的数组相比,它的容量能动态增长。类似于C语言中的动态申请内存,动态增长内存。...
分类:
编程语言 时间:
2016-04-19 20:10:23
阅读次数:
173
一,hashtable原理: 哈希表又名散列表,其主要目的是用于解决数据的快速定位问题。考虑如下一个场景。 一列键值对数据,存储在一个table中,如何通过数据的关键字快速查找相应值呢?不要告诉我一个个拿出来比较key啊,呵呵。 大家都知道,在所有的线性数据结构中,数组的定位速度最快,因为它可通过数
分类:
其他好文 时间:
2016-03-11 22:28:16
阅读次数:
244
线性数据结构(例如链表)在检索数据项时,最坏情况下可能需要遍历整个链表才能找到检索的数据项或者直接没有找到要检索的数据项,这样检索数据的时间复杂度为O(n),其中n为链表的大小(即链表中数据项的数目)。当需要处理的数据量很大时,这样的时间复杂度是不可接受的。而使用二叉查找树(binary searc
分类:
其他好文 时间:
2016-02-18 11:49:43
阅读次数:
182
数组是最简单的一种线性数据结构,当得到一个数组,需要找出最大最小值的时候,通过什么样的方法可以高效的,找出最大最小值呢。对于一个N个整数组成的数组,需要比较多少次呢。 现在有一个N=8的数组{5,6,8,3,7,9,1,2}。 解法一: 将找最大和最小数看成2个独立的问题,分别求解,需要遍历数组2次
分类:
编程语言 时间:
2016-02-17 22:10:55
阅读次数:
289
挺有意思的一道题,思路肯定是将图转化为Trie树,这样可以求得字典序。然后,按照trie的层次求解。一直wa的原因在于将树转化为线性数据结构时要从原树遍历,从trie遍历就会wa。不同结点可能映射为trie上的同一结点,如1->2 (a) 1->3(a) 2->4(b), 这是trie的结构是RT-
分类:
其他好文 时间:
2016-02-06 18:22:24
阅读次数:
219
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的...
分类:
其他好文 时间:
2015-11-13 13:10:24
阅读次数:
353
OC实用转换model的工具说明这是本人写的一个专门用来将json数据直接转换生成Model文件的工具,目的是为了让你从写Model文件的繁琐过程中解脱出来,提升效率以及减少出错的几率,工具的特点如下:1. 用组合设计模式处理树形数据结构(非线性数据结构)2. 在调试台中处理生成Model文件3. ...
分类:
其他好文 时间:
2015-11-11 23:40:32
阅读次数:
294
数据结构线性数据结构Java数据结构-链表栈和队列数字九宫格狼追兔子猴子选大王蜗牛爬墙八皇后问题
分类:
其他好文 时间:
2015-11-09 10:59:32
阅读次数:
162