一,数据机构

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关

1)线性数据结构

数组,栈,队列,链表,哈希表

2)树结构

二叉树,二分搜索书,AVL,红黑树,Treap,Splay,堆,Trie,线段树,K-D树,并查集,哈夫曼树。

3)图结构

邻接矩阵,邻接表。

二,算法

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

程序 = 数据结构 + 算法

在计算机的世界里,数据结构无处不在


数据结构练习代码,结构如下:

datastructures -> 数据结构相关

array -> 数组

stack_queues.stack -> 栈

stack_queues.queue -> 队列

linked -> 链表

recursion -> 递归

binary_search_tree -> 二分搜索树

set_map.set -> set集合

set_map.map -> map映射

heap -> 堆

segment_tree -> 线段树

trie -> 字典树(前缀树)

union_find -> 并查集

avl -> AVL平衡树

red_black_tree -> 红黑树

hashtable -> 哈希表

基本算法相关

algorithms

sort -> 排序

heap -> 堆排序

other -> 其他算法相关

thread -> 线程相关

leetcode -> Leetcode练习题

以上,后面会慢慢补充更多数据结构和算法相关的代码

源码地址:https://github.com/wangxp423/ExerciseJava