数据结构 Java语言版 王学军 第三章新.pptVIP

  • 15
  • 0
  • 约1.39万字
  • 约 58页
  • 2015-12-24 发布于广东
  • 举报

数据结构 Java语言版 王学军 第三章新.ppt

数据结构(Java语言版) 人民邮电出版社 【教学提示】 本章共设8个学时,理论4学时,实验4学时 采用理论联系实践、配合实例的方式进行讲解,重点讲解线性表的逻辑结构、存储结构及相关应用,体会数据结构中逻辑结构与存储结构之间的对应关系。 双向链表、循环链表等内容可作为选学内容。 【内容简介】 线性表是数据结构中最基本的结构之一,其应用非常广泛,在高级语言程序设计中经常遇到的数组就是线性表的应用。按线性表的存储结构,可将其分为顺序表和链表,通过对其操作可以解决许多生活中的实际问题。 【知识要点】 ? 线性表的概述和基本概念; ? 顺序表的基本操作及综合应用; ? 链表的基本操作及综合应用; ? 实例应用。 第一节 3.1 实例引入 【学习任务】 通过实例初步了解线性表的特征,从感性上认识线性表及其简单操作。 【例3.1】 对于初学计算机者,会遇到计算机打字练习,目前有很多指法练习软件,其中打字游戏集娱乐和学习于一体,是计算机初学者比较喜欢使用的打字练习软件。图3.1所示为打字游戏界面。 对于如图3.1所示的英文打字软件,是对单个字符进行练习的,如图3.2所示的界面是对多个英文字符进行练习,练习时,若输入正确的字母,以蓝色显示;若输入错误的字母,会给出相应提示或显示其他颜色(假设为红色)。 在如图3.2所示的提示信息中,给出的字母就是按照顺序排列的,其中包含了字母、空格等符号,用户可以按照字母出现的先后顺序进行操作,根据这样的提示输入的信息就是典型的基于前后关系的线性结构。 【例3.2】 假设现在有一篇英文文章,某用户想在其中查找某单词,则首先要将这些单词以前后出现的顺序存放在一张表中,假设为A=(a1,a2,…,ai?1,ai,ai+1,…,an),要在其中查找某单词时,可按顺序从a1开始,一直找到最后,如果有匹配的单词存在,则查找成功,否则查找失败。如果查找的过程是在类似于以字母为顺序的字典中进行的,则可以先确定该单词的第一个字母所在位置,然后进一步查找单词具体位置,这些具体操作是基于表A的建立方式不同而不同的。这里表A也是一个线性表的实例。 第二节 3.2 线性表的概述 【学习任务】 理解线性表的含义,熟练掌握线性表的相关概念,重点理解线性表中逻辑结构、存储结构和相应操作之间的关系。 3.2.1 线性表的概念 通过前面的例子可以看出,线性表实际上是基于前面元素和后面元素之间的一种相邻关系的结构。 1.线性表的定义 线性表是将多个具有相同类型的数据元素放在一起构成一组有限序列的结构,通常记为 A?=(a1,a2,…,ai?1,ai,ai+1,…,an) 2.线性表的相关概念 在上述线性表的定义中,相关概念如下。 (1)A代表一个线性表。 (2)ai(1≤i≤n)称为线性表的元素,i为元素的下标,表示该元素在线性表中的位置。 (3)线性表中n为表长,其中,n≥0,当n=0时称该表为空表。 (4)线性表是一种基于相邻数据元素之间的对应关系,将元素ai?1称为元素ai的直接前趋,将元素ai+1称为元素ai的直接后继。通过定义可知,在线性表中,a1是表中第一个元素,它没有前趋,an是最后一个元素,没有后继。 (5)线性表中的元素ai既可以是一个单个元素,也可以是一个数据元素,即由多个数据项构成的元素。例如,在第1章中所介绍的图书信息表中,一个记录即为一个元素,它包括多个数据项(图书编号、书名、数量、价格)。 因此,线性表的定义也可描述如下:线性表是第一个元素无前驱,最后一个元素无后继,而其他元素都有唯一直接前驱和直接后继的表结构。 例如,A=(1,4,7,…,49)是一个线性表,每个数值就是一个元素。 B=((2001,计算机应用基础,10,22),(2003,大学英语,30,14),(2005,机械制图,70,30),(2007,数据结构,35,24))也是一个线性表,每个元素是由4个数据项(图书编号、书名、数量、价格)构成的。 3.2.2 线性表的存储结构及操作 1.线性表的逻辑结构与存储结构 由线性表的定义可知线性表的逻辑结构,即相临元素之间所满足的前驱和后继的逻辑关系。 如果要在计算机中实现对线性表的各种操作,必须了解线性表在计算机中的存储形式(即存储结构)。一种逻辑结构可对应多种存储结构,而每种存储结构又有自己的存储特点和操作方式。 2.线性表的操作 线性表的常见操作有:建表(初始化)、求表长、查找、插入、删除等。线性表的操作是在其逻辑结构和存储结构的共同支持下完成的。 值得注意的是,每种数据结构的相关操作一定不能脱离其逻辑结构和存储结构而独立存在。 3.线性表的分类 线性表的存储结构可分为顺序存储结构和链式存储结构两种,因此可将线性表分为顺序表和链表两大类。下面分别介绍顺序表和链表的特点及

文档评论(0)

1亿VIP精品文档

相关文档