zoukankan      html  css  js  c++  java
  • 十一。设计数据结构

    二.设计数据结构

    1.LFU

    (1)LinkedHashMap,LinkedHashSet。使得链表拥有了随机访问的功能(数组具有随机访问的特点)

    (2)LFU算法中可以自顶向下编程,把重要重复代码抽象出来

    (3)HashMap.putIfAbsent(key,val)方法

    (4)LFU的实现还是挺复杂的,得多看看

    2.优先级队列

    和单端队列的区别,无论怎样入队,出队的序列是有序的

    3.设计循环队列

    4.实现栈和队列

    实现栈:

    (1)开始时:topp=-1(2)入栈:arr[++top]=e(3)出栈:e=arr[top--](4)取栈顶:e=arr[top](5)栈空:top=-1(6)栈大小:size=top+1

      ***top指向栈顶元素

    实现队列:(循环队列)

    (1)开始时:front=rear=0(2)入队:rear=(rear+1)%len(3)出队:front=(front+1)%len(4)取队头:front,取队尾:(rear+len-1)%len

    (5)队空:front=rear(6)队满:(rear+1)%len=front(7)队长:(rear-front+len)%len

      ***因为要区分队空和队满,要浪费一个存储单元

      ***front指向队头元素,rear指向队尾元素的下一个位置

    5.实现随机集合

    N380 O(1)时间插入,删除和获取随机元素。也是一个设计题

    (1)数组可以随机访问元素

    (2)java生成随机数

    10/17

    6.设计哈希集合(N705)

    (1)哈希表存的是键值对

    (2)哈希表让数组有了随机访问的功能

    7.设计哈希映射

    (1)处理冲突的方法:拉链法,开放寻址法

    (2)INF:infinity。表示无穷的意思(无穷大,无穷小)。int INF=Integer.MAX_VALUE;int INF=Integer.MIN_VALUE

  • 相关阅读:
    IE8兼容
    游标
    WARN No appenders could be found for logger (org.springframework.orm.hibernate3.support.OpenSessionInViewFilter)
    sql server 备份数据
    JS页面打印
    jQuery Mobile 入门教程
    jquerymobile入门(文件引用+多页面)
    定位和可见性
    二月份总结
    mailto用法
  • 原文地址:https://www.cnblogs.com/midiyu/p/15416760.html
Copyright © 2011-2022 走看看