`
uule
  • 浏览: 6351780 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

数据结构总结

 
阅读更多

数据结构和算法

常用算法

每天一道算法题

算法1

数据结构笔试(一)

数据结构_算法

 

 

=================================================

缓存污染

 

LRU:

      Least recently used

      最近最少使用

 

      新数据插入链表头部

      缓存数据访问时,将数据移到链表头部

      链表满时,淘汰尾部数据

 

          

 

 

Two queues:

       两个缓存队列,一个FIFO队列,一个LRU队列

 

       新数据插入FIFO队列

       若FIFO里的数据没有被访问,则按照FIFO规则淘汰

       FIFO队列里的数据再次被访问,则移到LRU队列头部

       LRU队列里的数据再次被访问,则移到头部

       LRU队列淘汰尾部的数据

   

 

Multi Queue(MQ)

 

 

 

LFU:       

       Least Frequently Used

       历史最少使用

 

       每个数据都需要维护引用计数

 

       新数据插入队列尾部 (因为引用计数为1)

       队列数据被访问后,引用计数增加,队列重新排序

       淘汰数据时,从尾部淘汰 (淘汰引用计数最小的数据)

 

           

 

 --------------------------------------------------------------------------------------------------------------------------

红黑树:

TreeSet、TreeMap使用



 
 

红黑树的特性:

(1)每个节点或者是黑色,或者是红色。

(2)根节点是黑色

(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]

(4)如果一个节点是红色的,则它的子节点必须是黑色的

(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的节点

 

注意:

(01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点。

(02) 特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。

 

红黑树的反转:

翻转要旋转的节点

       左旋相当于从上往下翻

                左旋时右节点是父节点

       右旋相当于从下往上翻

                右旋时左节点是父节点

 

 

左旋示例图(以x为节点进行左旋):

                               z
   x                          /                  
  / \      --(左旋)-->       x
 y   z                      /
                           y

对x进行左旋,意味着,将“x的右孩子”设为“x的父亲节点”;即,将 x变成了一个左节点(x成了为z的左孩子)!。 因此,左旋中的“左”,意味着“被旋转的节点将变成一个左节点”


右旋示例图(以x为节点进行右旋):

                               y
   x                            \                 
  / \      --(右旋)-->           x
 y   z                            \
                                   z

对x进行右旋,意味着,将“x的左孩子”设为“x的父亲节点”;即,将 x变成了一个右节点(x成了为y的右孩子)! 因此,右旋中的“右”,意味着“被旋转的节点将变成一个右节点”

 

红黑树原理

 --------------------------------------------------------------------------------------------------------------------------

 

  • 大小: 17.8 KB
  • 大小: 11.6 KB
  • 大小: 35.2 KB
分享到:
评论

相关推荐

    电子科技大学820数据结构总结.pdf

    电子科技大学820数据结构总结涵盖了这个主题的多个关键知识点,包括数据结构的基本概念、时间复杂度分析、链表、队列、栈以及递归等。 首先,我们关注到时间复杂度的表示,它用于衡量算法执行效率。通常用大O符号...

    java数据结构总结

    "java数据结构总结" java数据结构是计算机科学中研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。下面是java数据结构的知识点总结: 一、数据结构定义 数据结构是相互之间...

    java数据结构总结 思维导图

    java 数据结构总结的思维导图笔记,个人做的非常全,需要的自行下载

    数据结构总结.doc

    在《数据结构总结》中,我们首先从绪论部分理解数据结构的基本概念。数据是信息的基础,而数据元素是数据的基本组成单元,可能由多个数据项组成。数据对象是具有相同性质的数据元素的集合,例如整数集合或字符串集合...

    漫画算法之基础数据结构总结

    本文将深入探讨"漫画算法之基础数据结构总结"中的关键概念,包括栈、队列、散列和数组链表,这些都是编程中不可或缺的部分。 首先,我们来看栈(Stack)。栈是一种后进先出(LIFO)的数据结构,它的操作类似于日常...

    数据结构总结(1).pdf

    数据结构是计算机科学中至关重要的基础概念,它主要关注如何高效地组织和处理数据。算法则是解决问题的具体步骤,是数据结构应用的核心。算法设计时,需要遵循四个基本特征:可行性、确定性、有穷性和拥有足够的信息...

    计算机考研数据结构总结.pdf

    计算机考研数据结构总结.pdf

    简单的数据结构总结

    以下是对标题“简单的数据结构总结”及描述中提及的知识点的详细说明: 1. **算法**: - 算法是解决问题的具体步骤,它不等同于程序,但程序的编写依赖于算法的设计。 - 算法的基本特征包括可行性、确定性(每...

    考研408数据结构总结Markdown

    考研408数据结构总结Markdown

    算法与数据结构总结.docx

    《算法与数据结构总结》是一份详尽的文档,涵盖了计算机科学中至关重要的主题——算法与数据结构。这篇总结深入浅出地阐述了算法与数据结构的基本概念,以及它们在计算机科学中的应用。 首先,算法是解决问题或执行...

    数据结构经典算法总结

    数据结构是计算机科学中至关重要的基础概念,它研究如何有效地组织和存储数据,以便于高效地访问和操作。本文将对数据结构的经典算法进行详细解析,帮助理解和掌握这些核心概念。 首先,我们要明确数据和数据元素的...

    数据结构总结.pptx

    数据结构总结.pptx

    [详细完整版]数据结构总结.pdf

    在这个详细完整版的数据结构总结中,我们可以看到以下几个核心知识点: 1. **数据结构的定义**:数据结构是一门研究非数值计算的程序设计问题中,操作对象(数据元素)以及它们之间的关系和操作的学科。数据结构是...

    数据结构总结.md

    数据结构总结.md

    NOI金牌吴确大神算法+数据结构总结

    【NOI金牌吴确大神算法+数据结构总结】 在计算机科学的世界里,算法和数据结构是构建高效程序的基础。NOI(全国青少年信息学奥林匹克竞赛)金牌得主吴确,以其深厚的理论功底和丰富的实践经验,为我们揭示了算法与...

    数据结构总结2010 —彩色版来自哈工大

    ### 数据结构总结——彩色版来自哈工大 #### 一、概述 本总结文档由哈尔滨工业大学提供,旨在帮助学生深入理解和掌握数据结构的基础知识。文档覆盖了数据结构的关键概念、不同类型的结构(如线性表、树、图等),...

    基础数据结构总结

    数据结构是计算机科学中的核心概念,它涉及到如何在内存中高效地组织和管理数据,以便进行各种计算和操作。在本篇文章中,我们将深入探讨标题和描述中提及的基础数据结构,包括栈、队列、二叉树以及图,并结合压缩包...

    “数据结构与算法”课程学习总结报告

    《“数据结构与算法”课程学习总结报告》 在学习“数据结构与算法”这门课程时,我们深入了解了线性结构、树结构和图结构中的数据表示与处理方法。这些知识是计算机科学中的基石,对于高效编程和优化至关重要。课程...

Global site tag (gtag.js) - Google Analytics