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算法的理解

    码不动了,后补

  • 相关阅读:
    Laravel-RestfulAPI 资源控制器(全面详解)
    Laravel 支付宝SDK在Laravel5的封装
    Laravel 集成 阿里大于 短信接口
    Laravel --进阶篇 (单用户登录)
    Laravel LTS 分割 路由文件的最佳方式
    Laravel -- 实战篇 自制二维码 Simple QrCode
    Laravel 使用 Aliyun OSS 云存储
    Laravel 富文本插件-Ueditor
    Laravel 实战篇
    Laravel 微信开发组件-WeChat 微信支付
  • 原文地址:https://www.cnblogs.com/EpicBrozo/p/12587531.html
Copyright © 2011-2022 走看看