数据结构与算法1.3_MOOC笔记

2019.12.2
1.3数据结构与抽象数据类型 学习记录

1.2什么是数据结构

​ 结构:实体 + 关系

  • 数据结构的组合:

    逻辑,存储,运算三个方面:

    • 按照逻辑关系组织起来的一批数据
    • 按一定的存储方法把它存储在计算机中
    • 在这些数据上定义了一个运算的集合
  • 数据结构的逻辑组织:

    线性结构

    • 线性表(表,栈,队列,串等)[前驱后继关系]

    非线性结构

    • 树(二叉树,Huffman树,二叉检索树等)[层次化关系]
    • 图(有向图,无向图等)[无向,受限少]
  • 数据的存储结构

    逻辑结构到物理存储空间的映射。对于数据结构里所定义的每一个节点,申请的内存空间必须是连续存储的区域

    除非指针指向别的扩展地址。

    计算机主存储器(内存)

    • 非负整数地址编码,相邻单元的集合
    • 基本单位是字节
    • 访问不同地址所需时间基本相同(即随机访问)

    数据结构的存储结构组成(四类形式):顺序,链接,索引,散列

  • 抽象数据类型

    简称ADT(Abstract Data Type)

    • 定义了一组运算的数学模型
    • 与物理存储结构无关
    • 使软件系统建立在数据之上(面向对象)

    抽象数据类型的标准格式

ADT 抽象数据类型名
{
Data:
数据元素之间逻辑关系的定义;
Operation:
操作1;
操作2;
...
}

有人举出了“超级玛丽”例子:

“超级玛丽”这个经典的任天堂游戏,里面的游戏主角是马里奥,我们给他定义了基本操作,前进、后退、跳、打子弹等。这就是一个抽象数据类型,定义了一个数据对象、对象中各元素之间的关系及对数据元素的操作。

猜你喜欢

转载自www.cnblogs.com/stanoswald/p/11969806.html