zoukankan      html  css  js  c++  java
  • 数据结构随笔

    摘要:

      写些对数据结构的理解。

    1) 个人觉得数据结构最基本的就两种,链表和数组。

      链表的好处在于动态分配内存,增加删除方便,坏处在于查找不方便,增加额外存储空间;

      数组的好处在于查找方便;坏处在于增加删除不方便,超出指定长度后需要重新分配内存。

    2) 其他的数据结构,例如堆,栈,树,队列都可以使用数组或者链表实现。具体实现,可以查看JDK源码或者MSDN。

    常见数据结构,即数据容器

    a)Tree

    查询速度快,插入速度慢

    BinaryTree:

    AVL树:

    红黑树:

    B/B+/B-树:

    b) list

    链表,顺序查询,插入删除代价小

    c) queue

    FIFO,由list/数组/stack实现(list最合适),顺序查询速度快,插入删除代价小

    l ArrayDeque/ArrayList :队列,其实也是数组,加上头尾索引

    l PriorityQueue:优先队列

    l LinkedQueue/LinkedList:双向链表实现  

    l LinkedHashMap :单向链表实现了

    l LinkedHashSet: 内部使用LinkedHashMap

    d) Vector

    数组,根据下标访问

    e) Stack

    FILO,可用数组实现,可自己实现下列类

    l ArrayStack 默认初始大小,用数组实现

    l LinkedStack 动态增加容量,用链表实现

    f) heap

    最大堆,最小堆,

    Util包中无实现,自己可用数组实现

    http://lotusyu.iteye.com/blog/1061822

    g) map

    存储方式是数组;存储结构红黑树(查找速度快,平均)

    Java Util包实现:

    通用 Map,用于在应用程序中管理映射

    l HashMap  冲突解决使用list

    l Hashtable

    l LinkedHashMap

    保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。

    l IdentityHashMap

    简单说IdentityHashMap与常用的HashMap的区别是:前者比较key时是“引用相等”而后者是“对象相等”,即对于k1和k2,当k1==k2时,IdentityHashMap认为两个key相等,而HashMap只有在k1.equals(k2) == true 时才会认为两个key相等。有其特殊用途,比如序列化或者深度复制。或者记录对象代理。

    l TreeMap  

    TreeMap实现SortMap接口,能够把它保存的记录根据键排序(使用红黑树排序),默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。

    http://www.cnblogs.com/liqizhou/archive/2012/09/27/java%E4%B8%ADtreemap%E5%92%8Ctreeset%E5%AE%9E%E7%8E%B0%E7%BA%A2%E9%BB%91%E6%A0%91.html

    l WeakHashMap

    l ConcurrentHashMap

    l PriorityQueue 最小堆

    l ConcurrentSkipListMap 跳跃表

     

    备注:http://java-mzd.iteye.com/blog/827523  Hash表分析以及Java实现

     

    一个用于帮助实现您自己的 Map 类的抽象类

    l AbstractMap

    计划、执行、每天高效的活着学着
  • 相关阅读:
    C#时间格式转换问题(12小时制和24小时制)
    ajax跨域请求webservice webconfig配置
    C#时间戳转化为DateTime
    C#生成缩略图
    codeforces-1348-C Phoenix and Distribution
    P4314 CPU监控
    YangK's dfs序与树链剖分
    Yangk's 静态主席树
    P2253 好一个一中腰鼓!
    codeforces-1341D-Nastya and Scoreboard 记忆化搜索
  • 原文地址:https://www.cnblogs.com/huxiaoyun90/p/3384860.html
Copyright © 2011-2022 走看看