【数据结构笔记】第一章 基本概念和术语

这个系列的笔记是有关数据结构和简单算法的,同样遵寻先阐述思路,再给出具体程序的方式组织。对于程序源码,在给出类图的基础上,给出Java和C++两种不同的代码表示,其中C++代码参考自Kruse《数据结构与程序设计——C++描述》。这些C++代码最大的特点是,在任何一种具体结构的函数实现中,都不使用return语句返回值。Return得到的是函数执行后的状态。这些函数通过引用的方式传值,并且在合适的地方使用const标记,减少了分配给形参的空间的同时,可以根据需要直接处理传入函数的实参的值,也可以在一个函数中同时“返回”多个值。Java代码除参照Java底层源码外,还做了一些小的调整。

第一章 基本概念和术语

    • 1.1数据
      • 1.1.1定义
      • 1.1.2特点
      • 1.1.3数据元素
      • 1.1.4数据项
      • 1.1.5数据对象
    • 1.2数据结构
      • 1.2.1逻辑结构
        • (1)集合结构
        • (2)线性结构
        • (3)树形结构
        • (4)图形结构
      • 1.2.2物理结构(存储结构)
        • (1)顺序存储结构
        • (2)链式存储结构

1.1数据

根据公式 程序设计=数据结构+算法,数据结构在程序设计中的地位是毋庸置疑的。作为一个符合名词,数据结构实际上包含两层含义,一是数据,二是这些数据的组织结构。
在程序设计、数据结构、数据库等很多科目中,都涉及到对数据的操作和研究,也给出了对于数据的不同定义,比如,“数据指承载信息的数字与字符”(谭浩强《C程序设计》),“描述事物的符号记录称为数据”(王珊、萨师煊《数据库系统概论》),前者实际上是C语言中变量的延伸,后者则是对数据库中所处理的数据元素的定义。
在数据结构中,数据是一种更加抽象的概念,对应于客观世界中需要处理的问题,表现为不同的形式,“数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机处理的符号的总称。”(严蔚敏《数据结构(C语言描述)》)、“数据是描述客观事物的符号。”(程杰《大话数据结构》)都是在这个角度给出的数据定义,相对而言,这样定义的数据更贴近数据的本来含义。

1.1.1定义

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识 别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包 括字符及声音、图像、视频等非数值类型。

1.1.2特点

(1)可以输入到计算机中。
(2)能被计算机程序处理,对于整型、实型等数值类型,可以进行数值计算,对于字符数据类型,就需要进行非数值的处理。而声音、图像、视频等其实是可 以通过编码的手段变成字符数据来处理的。

1.1.3数据元素

数据是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,在数据库中也被称为记录。

1.1.4数据项

一个数据元素可以由若干个数据项组成,具体有哪些数据项,由系统来决定。数据项是数据不可分割的最小单位把数据项定义为数据最小单位,有助于我们更好地解决问题。但真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点

1.1.5数据对象

数据对象:是性质相同的数据元素的集合,是数据的子集。在实际应用中,处理的数据元素通常具有相同性质,在不产生混淆的情况下,我们都将数据对象简称为数据。

1.2数据结构

在现实世界中, 同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系称为结构。数据结构是相互之间存在一种或多种特定关系的数据元素的集合,在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。为编写岀一个“好”的程序,必须分析待处理对象的特性及各处理对象之间存在的关系。这也就是研究数据结构的意义所在。按照视点的不同,把数据结构分为逻辑结构和物理结构。

1.2.1逻辑结构

逻辑结构:是指数据对象中数据元素之间的相互关系。其实这也是我们今后最需 要关注的问题。逻辑结构分为以下四种:

(1)集合结构

集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关 系。各个数据元素是“平等”的,它们的共同属性是“同属于一个集合、数据结构中 的集合关系就类似于数学中的集合。

(2)线性结构

线性结构:线性结构中的数据元素之间是一对一的关系。

(3)树形结构

树形结构:树形结构中的数据元素之间存在一种一对多的层次关系)。

(4)图形结构

图形结构:图形结构的数据元素是多对多的关系)。

逻辑结构是针对具体问题的,是为了解决某个问题, 在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系° •

1.2.2物理结构(存储结构)

物理结构:是指数据的逻辑结构在计算机中的存储形式。
数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素 存储到计算机的存储器中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外 部存储器的数据组织通常用文件结构来描述。数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何 存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。
数据元素的存储结构形式有两种:顺序存储和链式存储。

(1)顺序存储结构

顺序存储结构是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关 系和物理关系是一致的。当建立一个有9个整型数据的数组时,计算机就在内存中,按照一个整型所占位置的大小乘以9,开辟一段连续的空间,第一个数组数据就放在第一个位置,第二个数据放在第二个,这样依次摆放。

(2)链式存储结构

链式存储结构的存储单元里,地址可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要用 一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。
逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。

参考资料
程杰.《大话数据结构》.清华大学出版社.2011

你可能感兴趣的:(数据结构)