一、数据结构概述

⏱️ 5 分钟 步骤 1 / 3

1.1 简介

《数据结构》这门课程大多时候等同于《数据结构与算法》,所以我们一般说数据结构,都会涉及到算法。《数据结构》这门课程要求学生根据所学的数据结构理论,能完成复杂的程序设计。而程序设计能力的提高,必须要有学习、观摩、借鉴和实践的过程。

在阅读这篇文章时,你应当具备一定的C/C++编程基础,并能够理解指针和结构体。

1.2 数据结构与算法的概念

我们把现实中复杂的问题以特定的数据类型(现实中的个体)和特定的存储结构(现实中个体之间的关系)保存在计算机内存中,我们把这种“特定的存储结构”叫做数据结构。在此数据结构的基础之上为实现的某个功能(比如查找、删除、排序)而执行的相应操作叫做算法。

我们可以简单理解为:数据结构 = 个体 + 个体的关系,算法 = 对存储数据的操作。

1.3 衡量算法的标准

通过1,我们把处理数据的方法和步骤叫做算法。而衡量算法的标准包括以下几个方面:

  • 时间复杂度:程序大概要执行的次数,而非执行的时间
  • 空间复杂度:算法执行过程中,大概占用的最大的内存
  • 难易程度
  • 健壮性

算法最核心的内容是研究算法的时间复杂度和空间复杂度。

1.4 数据结构在程序开发中的地位

数据结构是软件工程中最核心的课程。在实际程序开发中,我们会使用各种编程语言,对各种数据进行相应的功能操作,如存储、查询、删除,或是更复杂的运算。所以数据结构功底在一定程度上,决定了个人在程序开发上的综合能力。

我们可以理解为:程序 = 数据的存储 + 数据的操作(也就是算法) + 可以被计算机执行的语言。

1.5 数据结构的基本模块

为了方便我们今后的学习,本文列出数据结构的基础知识模块如下

线性结构(我们可以把它叫做线性表)

  • 连续存储[数组]
  • 离散存储[链表]
  • 线性结构的两种常见应用之一------栈
  • 线性结构的两种常见应用之二------队列

非线性结构