(共18张PPT)
第一章 数据与数据的组织
1.2 数据的组织
1.2.1 数据结构的概念
1.2.2 常见的数据结构
学习目标
理解数据结构的概念。
了解常见数据结构的特点及适用问题。
在计算机程序设计中,根据问题求解的需要,对数据进行有效的整理和组织,并以一定的形式加以存储和表示的过程称为数据结构的设计。
瑞士计算机科学家沃斯指出:
算法+数据结构=程序
新课讲授
知识点一:1.2.1 数据结构的概念
1.数据元素(Data Element)
现实问题中的数据往往具有多样性和复杂性的特点,为了有效组
织数据,必须对各种数据加以分类,对互相有关联的数据进行合理
重组,在此基础上,才能较好地选择、设计数据结构。
数据元素是数据的基本单位。也称为元素、节点、顶点、记录等。
有时一个数据元素可以由若干个数据项(也称为字段、域)组成,数据项是具有独立含义的最小数据表示单位。
2.数据类型(Data Type)
数据类型指的是具有相同性质的计算机数据的集合及在这个数据集合上的一组操作。例如,Python中整数数据类型包含了两个方面的关键内容,一是由计算机系统所能表示的整数组成,二是指在这个整数集合上可以进行的加、减、乘、除、取余数等算数运算操作。
数据类型可以分为基本数据类型(也称为原子数据类型)和结构数据类型。
基本数据类型由计算机编程环境提供,编程者可以在编程时直接用系统提供的标识符进行定义,如Python编程语言中的整型、实型、布尔型等。
结构数据类型是在程序设计时利用基本数据类型构造出的、复合的新类型,这种新类型由用户根据实际需要定义,能较好地描述数据元素的数据项组成以及数据元素之间的逻辑关系,方便用户根据数据之间逻辑关系的特点进行数据处理,如很多编程语言中提供的记录类型、集合等。python语言中结构数据类型中最常用的主要有:列表(list)、元组(tuple)、字典(dist)。
3.数据结构(Data Structure)
数据结构指的是数据之间的相互关系,即数据的组织形式。
数据结构
数据的运算
数据的存储结构或物理结构
数据的逻辑结构
数据元素之间的逻辑关系
即对数据施加的操作
数据元素及其关系在计算机存储器内的表示
数据结构设计的目的:使数据元素间的相互关系能准确地反映现实问题中的事物逻辑,既确保数据处理的正确性,又提高编程实现和数据处理的效率。
知识点二:1.2.2 常见的数据结构
1.数组
数据结构设计是为了解决实际问题而出现的科学,选择合适的数
据结构来组织与存储数据,可以达到高效处理数据的目的。常见的
数据结构有数组、链表、队列、栈、树和图等。
表示一批数据,不仅可以描述数据本身,还可以描述数据所处的位置或数据之间的前后顺序关系。可以迅速地通过下标精确访问序列中的某个数据元素,又可以通过下标按顺序遍历序列中的每个元素。如记录并统计全班同学的生日、杭州到全国各省会城市的机票价格等。
2.链表
表示一批数据,这类数据之间具有明确的相互链接的前后顺序,但对数据对象本身的位置信息不做要求。常用的链表有单向链表、双向链表、循环链表。
指针(Pointer)是用来指示一个数据存储地址(内存或者寄存器)的变量。
3.队列
数据具有“先进先出”且中间不能“插队”的组织和操作的性质。在数据序列的头部(称为队首)进行数据的读取(即出队),在数据序列的尾部(称为队尾)进行数据的插入(即入队)。比如,有时网络平台瞬间收到很多服务请求,系统会用队列逐个出队并处理。
4.栈
数据具有“先进先出”且中间不能“插队”的组织和操作的性质。在数据序列的头部(称为队首)进行数据的读取(即出队),在数据序列的尾部(称为队尾)进行数据的插入(即入队)。如网页浏览器对用户浏览网页的管理。无论是队列还是栈,其中的数据元素之间都呈现出一种线性关系。数组、链表、队列、栈都是线性表的特殊形式。
5.树
数据元素前面只有一个元素,后面可以由0个或多个元素相邻,所有元素之间的关系特征像一棵倒放的树。如计算机操作系统中文件夹的组织与管理、下棋算法中对后续局面的状态表示。
要点提示
数据结构的概念
(1)数据元素:数据的基本单位,可由若干数据项组成。数据项是具有独立含义的最小数据表示单位。
(2)数据类型:具有相同性质的计算机数据的集合及在这个数据集合上的一组操作。数据类型可分为基本数据类型和结构数据类型。
(3)数据结构:数据之间的相互关系,即数据的组织形式。主要包含数据的逻辑结构、数据的存储结构和数据的运算。
2.常见的数据结构
常见的数据结构有数组、链表、队列、栈、树和图等。数组、链表、队列、栈都是线性表的特殊形式。
1.以下关于数据结构的描述,不正确的是( )
A.数据的逻辑结构是指数据元素之间的逻辑排列和对应关系
B.数据的存储结构包括数据元素的存储及数据元素之间关系的存储
C.数据的运算是指对数据施加的操作,包括删除、查找、插入数据等
D.数据结构设计时不需要考虑编程实现和数据处理的效率
随堂练习
D
数据结构设计的目的是使数据元素间的相互关系能准确地反映现实问题中的事物逻辑,既确保数据处理的正确性,又提高编程实现和数据处理的效率。在设计数据结构时,就需要考虑效率问题。
2.用一个带盖(另一端封闭)的透明塑料筒来放取乒乓球,且筒的直径只允许一个乒乓球进出,如图,若放入球的编号序列为1、2、3、4,则取出球的编号序列可能的是( )
A.1、2、3、4
B.3、1、2、4
C.4、2、3、1
D.2、4、1、3。
A
透明塑料筒一端封闭,乒乓球的放入和取出过程,与数据结构中栈的入栈和出栈过程相似。