zoukankan      html  css  js  c++  java
  • 数据结构、算法及线性表总结

    数据结构、算法及线性表总结

    一、思维导图

    二、重要概念的笔记

    顺序表

    1.顺序表建表一般有头插法尾插法两种方法
    2.是由一段物理地址连续的存储单元构成的线性结构,一般采用数组存储
    3.空间连续,支持随机访问[时间复杂度为O(1)]
    4.插入删除的时间复杂度为O(n)

    链表

    1.分为单链表双链表循环单链表循环双链表
    (1)单链表仅包含指向下一位的一个指针,只能单向遍历
    (2)双链表包含指向下一位和上一位的两个指针,因此可以双向遍历
    (3)循环单链表将表头和表尾相连,形成一个环状结构(循环双链表与循环单链表相似)
    2.链表使用指针连接节点,故长度不固定,可以任意增删,也无需使用连续的空间
    3.空间利用率,每个数据元素都必须存储一个(或两个)指向下一节点(或前一节点)的指针
    4.每个数据元素仅能访问周围一个(或两个)元素,故遍历访问特定元素只能依次遍历,时间复杂度为O(n)
    5.插入删除的时间复杂度为O(1)

    1.栈是一种特殊的线性表,分为顺序栈链栈。存储规则为LIFO,即后进先出
    2.允许进行插入删除操作的一端称为栈顶,另一端称为栈底
    3.进栈,出栈分别指对栈顶进行插入和删除操作
    4.查找、存储、插入、删除等操作仅能对栈顶元素进行操作

    队列

    1.队列是一种特殊的线性表,分为顺序队列链式队列循环队列。存储规则为FIFO,即先进先出
    2.队列包含表的前端元素队头和表的后端元素队尾
    3.仅允许在队头进行出队操作,即删除元素;同样的,仅能在队尾进行入队操作,即插入元素

    1.串(String)是由零个或多个字符组成的有限序列,又称字符串,是一种特殊的线性表。但由于特殊性较强,故在思维导图中单独分块。
    2.包含0个字符的字符串称为空串
    3.串中任意连续字符组成的子序列称为该串的子串
    4当串按字节(Byte)为单位地址时,一个存储单元刚好存储一个字符,串中相邻的字符顺序地存储在地址相邻的存储单元中
    5当串按字(例如1字32位)为单位地址时,一个存储单元可以有4个字节组成。此时顺序存储结构又有非紧凑格式紧凑格式两种存储方式。
    (1)非紧凑格式中一个地址只存储一个字符。这样做使得运算处理简单,但缺点是存储空间十分浪费
    (2)紧凑格式中一个地址能存储四个字符。这样做空间的利用率更高,但对串中的字符的处理效率比较低

    三、疑难问题及解决方案

    KMP算法的理解

    码不动了,后补

  • 相关阅读:
    使用auto_prepend_file和auto_append_file
    maven导入外部jar包的方法
    scala的多种集合的使用(3)之遍历集合的方法
    scala的多种集合的使用(4)之列表List(ListBuffer)的操作
    scala的多种集合的使用(2)之集合常用方法
    UltraEdit文本行数多变一和一边多
    scala的多种集合的使用(1)之集合层级结构与分类
    用Case类生成模板代码
    寻:IE总弹出广告窗口方法? Hello
    ASP.net中提示"分析器错误""未能加载类型" Hello
  • 原文地址:https://www.cnblogs.com/EpicBrozo/p/12587531.html
Copyright © 2011-2022 走看看