HashMap实现原理,利用数组和链表存储元素 数组:存储区间连续,占用内存严重,寻址容易,插入删除困难 链表:存储区间离散,占用内存比较宽松,寻址困难,插入删除容易 hashmap综合应用了这两种数据结构,实现了寻址容易,插入删除也容易 HashMap结构示意图: 实现原理:用一个数组来存储元素, ...
分类:
其他好文 时间:
2018-04-10 10:54:34
阅读次数:
176
递归的特性: 1.调用自身函数 2.有一个结束条件 3.递归效率不高,可能会导致栈溢出(函数调用是通过栈这种数据结构实现的,每进入一个函数调用,栈就会增加一层栈帧,函数每返回,栈就会减少一层栈帧,由于栈的大小不是无限的,递归调用过多,可能会导致栈溢出) 斐波那契数列:1, 1, 2, 3, 5, 8 ...
分类:
编程语言 时间:
2018-04-08 13:25:21
阅读次数:
210
table 在lua中是一个非常常用的数据结构,可以用来存放各种类型的元素,那么就会让人好奇,它这么强大,它是用什么数据结构实现的呢 首先,考虑 table = {1, 2, 3, 4, 5, 6, 7, 8} 这样的结构, 为了获得最快的访问速度,它是用数组实现的 那么如果执行table[1000 ...
分类:
其他好文 时间:
2018-03-30 00:08:00
阅读次数:
228
例27:题目:用递归的方法将输入的字符,以相反的方式打印出来。程序分析:了解递归特性1.必须有一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,
分类:
编程语言 时间:
2018-03-12 00:00:50
阅读次数:
198
1.必须有一个明确的结束条件。 2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3.递归效率不高,递归层次过多时会导致栈溢出 (在计算机中,函数调用是通过栈stack这种数据结构实现的,每当进入一个函数调用, 栈就会加一层栈帧,每当函数返回,站就会减一层栈帧,由于栈的大小不是无限的,所 ...
分类:
编程语言 时间:
2018-03-06 12:54:27
阅读次数:
462
队列、链表之类的数据结构及其常用。Java中,ArrayList和Vector都是使用数组作为其内部实现。两者最大的不同在于:Vector是线程安全的,而ArrayList不是。此外LinkedList使用链表的数据结构实现了List,但并不是线程安全的,就像之前包装HashMap,这里我们可以使用 ...
分类:
其他好文 时间:
2018-02-24 18:01:47
阅读次数:
173
为方便开发人员进行程序开发,JDK提供了一组主要的数据结构实现,如List,Map,Set。网上有许多优秀的源码解析,就不再做多余分析。本节主要讨论List结构的使用方法和优化技巧。 List是最重要的数据结构之一。常见又是最重要的三种List实现:ArrayList,Vector,LinkedLi ...
分类:
其他好文 时间:
2018-02-14 00:44:02
阅读次数:
199
队列是一种基本的线性数据结构。它满足先进先出(First In ,First Out)的原则。 我们可以应用这种数据结构实现很多复杂的问题。但每次要手写队列的相关函数并不省事,我们便可以应用STL中的queue库来使用队列。 1调用头文件 #include<queue> 2.定义队列 queue<i ...
分类:
其他好文 时间:
2018-02-13 19:29:55
阅读次数:
118
递归 :在函数内部,可以调用其它函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 递归特性: 1必须要有一个明确的结束条件 2每次进去更深一层递归时,问题规模相比上次递归都应有所减少 3递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的, ...
分类:
其他好文 时间:
2018-01-13 23:37:59
阅读次数:
211
这是一个计算几何入门的教程。 与计算几何密切相关的就是坐标系,坐标系上的点可以用下面数据结构实现。 向量也是经常需要的,由于和点所需储存的信息相同,可以直接定义为别名。 由于需要使用大量加减乘除,我们可以重载运算符达到很好的使用效果。 /× 挖坑,有时间再写代码 ×/ 我们也可以用STL的虚数类来实 ...
分类:
其他好文 时间:
2017-12-24 22:49:41
阅读次数:
199