一、常见数据结构

1、Array 数组

最简单且应用最广泛的数据结构之一

特性:使用连续的内存来存储,数组中的所有元素必须是相同的类型或类型的衍生(同质数据结构),元素可以通过下标直接访问。

2、LinkedList 链表

线性表的一种,最基本、最简单,也是最常用的数据结构。

特性:元素之间的关系是一对一的关系(除了第一个和最后一个元素,其它元素都是首位相接),顺序存储结构和链式存储结构两种存储方式。

3、double-linked-list  双向链表

特性:每个元素都是一个对象,每个对象有一个关键字key和两个指针(next和prev)。

4、Stack  栈

和队列相似,一个带有数据存储特性的数据结构。

特性:存储数据时先进后出的,栈只有一个出口,只能从栈顶部增加和移除元素。

5、Heap 堆

一般情况下,堆叫二叉堆,近似完全二叉树的数据结构。

特性:子节点的键值或者索引总是小于它的父节点,每个节点的左右子树又是一个二叉堆,根节点最大的堆叫最大堆或者大根堆,最小的叫最小堆或者小根堆。

6、list  线性表

由零个或多个数据元素组成的有限序列。

特性:线性表是一个序列,0个元素构成的线性表是空表,第一个元素无先驱,最后一个元素无后继,有长度,长度是元素的个数,长度有限。

7、queue  队列

特性:先进先出(FIFO),并发中使用 ,可以安全的将对象从一个任务传给另一个任务。

8、set 集合

特性:保存不重复元素。

9、map  字典

特性:关联数组,也被叫做字典或者键值对。

10、graph  图

特性:通常使用临接矩阵和临接表表示,前者易实现但是对于稀疏矩阵会浪费较多空间,后者使用链表的方式存储信息但是对于图搜索时间复杂度较高。

最新文章

  1. h5嵌入视频遇到的bug及总结---转载
  2. [LintCode] Create Maximum Number 创建最大数
  3. cas单点登录用户名为中文的解决办法
  4. BZOJ2216 : [Poi2011]Lightning Conductor
  5. 使用反射来编写实体类的XML
  6. Iterator invalidation(迭代器失效)
  7. PHP获取客户端和服务器端IP(转)
  8. 计算器模拟器中的情怀——Free42简介
  9. .net WebApi中使用swagger生成WepApi集成测试工具
  10. Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)
  11. Springboot Download file
  12. C# System.Collections.ArrayList
  13. Kaggle(2):验证和过分拟合
  14. 常用代码之五:RequireJS, 一个Define需要且只能有一个返回值/对象,一个JS文件里只能放一个Define.
  15. Java 集合基础知识 List/Set/Map
  16. ARM FPGA Extended Memory Interface
  17. bzoj2134
  18. 决策树与树集成模型(bootstrap, 决策树(信息熵,信息增益, 信息增益率, 基尼系数),回归树, Bagging, 随机森林, Boosting, Adaboost, GBDT, XGboost)
  19. 【flask macro】No caller defined
  20. 配置文件语言之yaml

热门文章

  1. Echarts常见问题汇总
  2. oracle exp 和 imp 数据和表结构互相独立导出导入
  3. Java事务(转载)
  4. hiho #1144 : 01串(模拟)
  5. 【leetcode】Trips and Users
  6. SpringBoot项目构建、测试、热部署、配置原理、执行流程
  7. OpenCV笔记(2)(高斯平滑、腐蚀和膨胀、开闭运算、礼帽和黑帽、Sobel及其他算子)
  8. [深度学习] pytorch学习笔记(1)(数据类型、基础使用、自动求导、矩阵操作、维度变换、广播、拼接拆分、基本运算、范数、argmax、矩阵比较、where、gather)
  9. jQuery_完成表单注册检验
  10. npm全局路径及cache路径设置