《大话数据结构》Swift-01

409 阅读2分钟

为什么要学习数据结构

学习通用性知识,突破技能瓶颈 为了提高自己的编程技术水平,决定吧数据结构和算法好好学习一遍。至于为什么用swift,因为我是iOS开发,哈哈。喜欢用swift而已。

学习方法

  • 用swift改造《大话数据结构》的代码
  • 阅读第一遍的时候从头到尾,摘抄一些重点知识
  • 写出算法实现+适当的练习

数据结构绪论

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合

按照视点不同,我们把数据结构分为逻辑机构和物理结构。

  • 逻辑结构:数据对象中数据元素之间的相互关系
  • 物理结构:数据的逻辑结构在计算机中的存储形式

逻辑结构

  • 集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。
  • 线性结构:线性结构中的数据元素之间是一对一的关系
  • 树形结构:树形结构中的数据元素之间存在一对多的层次关系
  • 图形结构:图形结构的数据元素是多对多的关系。

物理结构

  • 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。(数组)
  • 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。(单链表、双链表)

数据类型

数据类型 = 集合 + 操作

数据类型: 是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

抽象数据类型

抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在此模型上的一组操作。

需要注意的是:抽象数据类型的定义仅仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现没有关系。而且,抽象数据类型不仅仅指那些已经定义并实现的数据类型,还可以是计算机编程者自己定义的数据类型。 抽象数据类型的标准格式:

ADT 抽象数据类型名
Data
    数据元素之间的逻辑关系定义
Operation
    操作1
        初始条件
        操作结果描述
    操作2
        .....
    操作n
        ......
endADT