数据结构与算法
2022-06-20 16:12:51   41  举报             
     
         
 AI智能生成
  数据结构与算法知识复习思维导图
    作者其他创作
 大纲/内容
  复杂度分析    
     空间复杂度  
     时间复杂度    
     最好  
     最坏  
     平均  
     均摊  
     线性表
线性结构:数据元素之间是一对一的关系。
    线性结构:数据元素之间是一对一的关系。
 栈    
     顺序栈  
     链式栈  
     数组    
      数组(Array)是一种线性表数据结构。
它用一组连续的内存空间,来存储一组
具有相同类型的数据。
    它用一组连续的内存空间,来存储一组
具有相同类型的数据。
 插入:
    若有一元素想往int[n]的第k个位置插入数据,需要在k-n的位置往后移。
最好情况时间复杂度 O(1)
   最坏情况复杂度为O(n)  
     平均负责度为O(n)  
     1) 插入:从最好O(1) 最坏O(n) 平均O(n)
    2) 插入:数组若无序,插入新的元素时,
可以将第K个位置元素移动到数组末尾,把
心的元素,插入到第k个位置,此处复杂度为O(1)。
3) 删除:从最好O(1) 最坏O(n) 平均O(n)
4) 多次删除集中在一起,提高删除效率
    连续的内存空间和相同类型的数据(随机访问的前提)。  
     优点:两限制使得具有随机访问的特性缺点:删除,插入数据效率低。  
     对内存空间要求高,需要一块连续的内存空间  
     链表    
     单链表    
     每个节点只包含一个指针,即后继指针。  
     单链表有两个特殊的节点,即首节点和尾节点。
为什么特殊?用首节点地址表示整条链表,尾节点
的后继指针指向空地址null。
    为什么特殊?用首节点地址表示整条链表,尾节点
的后继指针指向空地址null。
 性能特点:插入和删除节点的时间复杂度为O(1),
查找的时间复杂度为O(n)。
    查找的时间复杂度为O(n)。
 双向链表    
     节点除了存储数据外,还有两个指针分别指向前一个节点地址
(前驱指针prev)和下一个节点地址(后继指针next)。
    (前驱指针prev)和下一个节点地址(后继指针next)。
 首节点的前驱指针prev和尾节点的后继指针均指向空地址。  
     性能特点:
    和单链表相比,存储相同的数据,需要消耗更多的存储空间。
   循环链表    
     除了尾节点的后继指针指向首节点的地址外均与单链表一致。  
     适用于存储有循环特点的数据,比如约瑟夫问题。  
     队列    
     队列是一种受限的线性表数据结构,只支持两个操作:入队enqueue(),放一个数据到队列尾部;
出队dequeue0),从队列头部取一个元素。
    出队dequeue0),从队列头部取一个元素。
 队列跟栈一样,也是一种抽象的数据结构。  
     具有先进先出的特性,支持在队尾插入元素,在队头删除元素。  
     队列可以用数组来实现,也可以用链表来实现。
    用数组实现的队列叫作顺序队列,用链表实现的队列叫作链式队列。
   常见概念    
     数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。  
     数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。  
     数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。  
     数据结构的逻辑结构:数据对象中数据元素之间的相互关系,分为线性结构、树形结构、图形结构以及集合结构。  
     数据结构的物理结构:数据的逻辑结构在计算机中的存储形式,分为顺序存储和链式存储(不连续存储)。  
     算法:解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。  
     算法五个基本特性:输入、输出、有穷性、确定性和可行性。  
     树形结构    
     数据元素之间存在一对多的层次关系  
     度:结点拥有的子树数  
     树的度:树内各结点的度的最大值  
     叶结点/终端结点:度为0的结点  
     树的深度/高度:树中结点的最大层次  
     图
图(Graph)是由顶点和连接顶点的边构成的离散结构。
    图(Graph)是由顶点和连接顶点的边构成的离散结构。
 无向图  
     有向图  
     图的存储    
     邻接矩阵    
     图的邻接矩阵的存储方式是用两个数组来实现的,一个一维数组存储顶点信息,
一个二维数组存储线(无向图)或弧(有向图)的信息。
    一个二维数组存储线(无向图)或弧(有向图)的信息。
 邻接表    
     邻接表存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。  
    
 
 
 
 
  0 条评论
 下一页
  
   
  
  
  
  
  
  
  
  
  
  
 