zoukankan      html  css  js  c++  java
  • 计算机速成课 第十四集 数据结构

    1. 缘起

    • 在处理的数据的时候,不想让数据像大学宿舍里一样混乱
    • 希望的数据是结构化的,方便读取
    • 因此,科学家发明了「数据结构」

    2. 分类

    • 数组

      • 名称:也叫列表,或向量
      • 特点:数组的值一个一个连续存在内存里
      • 下标:为了拿到数组中的某个值,我们需要指定一个下标
      • 库函数
        • 排序函数:只要传入数组,就会返回排序后的数组,不需要写排序算法
    • 字符串

      • 其实就是字母、数字、标点符号等,组成的数组
    • 矩阵

      • 数组的数组
    • 结构体

      • 概念:多个变量打包在一起
      • 特点:可以创造更复杂的数据结构,消除这些限制
      • 举例
        • 节点:存一个变量,一个指针
        • 指针:是一种特殊变量,指向一个内存地址,因此得名
    • 链表

      • 特点1:是一种灵活的数据结构,能存很多个节点
      • 特点2:很容易重新排序,两端缩减,分割,倒序等
      • 特点3:很多复杂数据结构都用链表,最出名的是队列和栈
      • 灵活性是通过每个节点 指向 下一个节点实现的
      • 循环链表:最后一个结点指向头结点,形成一个环
      • 当程序员使用链表时,很少看指针具体指向哪里,而是用链表的抽象模型,更容易看懂
    • 队列

      • 像邮局排队,谁先来就排前面,这叫先进先出(FIFO)
      • 后进先出(LIFO)
      • 举例:松饼
      • 最高的节点叫「根节点」
      • 根节点下的所有节点,都叫「子节点」
      • 任何子节点的直属上层节点,叫「母节点」
      • 没有任何「子节点」的节点,也就是「树」结束的地方,叫「叶节点」
      • 重要性质:「根」到「叶」是单向的
      • 特点1:数据随意连接,包括循环
      • 特点2:可以用有多个指针的节点表示,因此没有「根」、「叶」、「子节点」、「父节点」这些概念,可以随意指向

    总结

    • 不同数据结构适用于不同场景,选择正确数据结构会让工作更简单,所以花时间考虑用什么数据结构是值得的
    • 大多数编程语言自带了预先做好的数据结构,程序员不同浪费时间从零写,时间可以花在更有趣的事情上
      • C++ 有「标准模板库」
      • Java 有 「Java 类库」
  • 相关阅读:
    《应用Yii1.1和PHP5进行敏捷Web开发》学习笔记(转)
    YII 小模块功能
    Netbeans代码配色主题大搜集
    opensuse 启动巨慢 解决方法 90s多
    opensuse 安装 网易云音乐 rpm netease music
    linux qq rpm deb opensuse
    openSUSE 安装 alien
    第一行代码 Android 第2版
    Android Studio AVD 虚拟机 联网 失败
    docker error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuratio
  • 原文地址:https://www.cnblogs.com/zxxsteven/p/15729907.html
Copyright © 2011-2022 走看看