内容简介
本书系统地介绍了算法与数据结构方面的基本知识, 阐述基本数据结构及算法在程序开发中的应用方法。全书分为八章。
目录
第l章绪论
pan style="font-family:宋体">.pan>数据结构的基本概念
pan style="font-family:宋体">.pan>.pan>数据结构的研究对象
pan style="font-family:宋体">.pan>.2数据结构的基本概念和基本术语
pan style="font-family:宋体">.2算法与数据结构
pan style="font-family:宋体">.2.pan>算法的概念
pan style="font-family:宋体">.2.2描述算法的方法
pan style="font-family:宋体">.2.3算法分析
pan style="font-family:宋体">.3 Java面向对象知识
l_3.pan>类及类的使用
pan style="font-family:宋体">.3.2程序人口及对象的使用
L 3.3构造方法
pan style="font-family:宋体">.3.4抽象类、接口
pan style="font-family:宋体">.3.5 ;多态
pan style="font-family:宋体">.3.6
l_3.7 ;equals方法、this、super
pan style="font-family:宋体">.4 Java语言的数据类型及其算法描述要点
pan style="font-family:宋体">.4.1 Java语言的基本数据类型概述
pan style="font-family:宋体">.4.2 Java语言的数组和类数据类型
l_4.3 Java语言的ArrayI』ist ;
pan style="font-family:宋体">.4.4 Java语言的函数
l_4.5用Java语言验证算法的方法
pan style="font-family:宋体">.5 Java中ADT规格与实现
pan style="font-family:宋体">.6一个Java应用实例
pan style="font-family:宋体">.7学结构的意义和方法
学
/span> ;
上机练span>
第2章线表.
2.pan>线表的逻辑结构
2.pan>.pan>线表的定义
.......
摘要与插图
; ;;本章主要内容是:数据结构的研究对象、基本概念和术语、算法的概念、描述算法的Java语言。
;;;;计算机科学是一门研究信息的表示和处理的科学.而信息的表示和组织又直接关系到信息处理程序的效率。由于许多程序的规模大、结构复杂、处理对象多为非数值型的数据,因此单纯依靠程序设计人员的经验和技巧已不能编制出率的处理程序。为了设计出效率高、可靠强的程序,人们必须对程序设计的方行系统的研究。这要求程序设计人员不但要掌握一般的程序设计技巧,而且要研究计算机程序加工的对象,即研究数据的特以及数据之间存在的关系,这是数据(或称信息)的结构。
;;;;数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由哪些成分数据构成,以什么方式构成,呈什么结构(或关系)。数据结构分为逻辑上的数据结构和物理上的数据结构。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构则反映成分数据在计算机内部的存储安排。
;;pan style="font-family:宋体">.pan>.pan>数据结构的研究对象
;;数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,数据结构主含3个方面的内容:数据的逻辑结构、数据的物理存储结构、对数据的操作(或算法或运算)。通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。
;;;;用计算机解决一个实际问题时,一般的步骤是:首先得到实际问题的数学模型,然后设计相应的算法,后编写程序,调试、完善,直得到问题的答案。当人们用计算机处理数值计算问题时,所用的数学模型是用数学方程描述的。若问题是不变的,要用代数方程描述,若问题是动态的.要用微分方程来描述。所涉及的运算对象一般是简单的整型、实型和逻辑型数据,因此程序设计者的主要精力集中于程序设计技巧上.而不是数据的存储和组织上。然而,目前计算机应用的更多领域是“非数值计算问题”,它们的数学模型无法用数学方程描述,而是用“数据结构”描述,解决此类问题的关键是设计出合适的数据结构。这是一种什么样的数学模型呢?用3个例子对它行说明,让读者对这种模型有一个感的认识。
;;;;【例pan style="font-family:宋体">.pan>】求一组(”个)整数中的大值。
;;;;算法:基本操作是“比较两个数的大小”。
;;;;模型:由多个整数排成的一个序列(一对一关系)——线结构。
;;;;【例pan style="font-family:宋体">.2】计算机对弈。
;;;;算法:对弈的规则和策略。
;;;;模型:由多个格局构成的呈现层次结构的树(一对多关系) ;一树型结构。
;;;;【例pan style="font-family:宋体">.3】制定教学计划。
;;;;算法:教学计划的制定规则和各课程间的先后关系。
;;;;模型:各课程构成的复杂的先后关系(多对多关系)——罔形结构。
;;;;从以上3个例子可以看出,描述非数值计算问题的数学模型是用线表、树、图等结构来描述的,这也是“数据结构”课程的研究对象。
;;;;一般来说,“数据结构”是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
;;pan style="font-family:宋体">.pan>.2数据结构的基本概念和基本术语
;;数据:所有能被输入计算机中,且被计算机处理的符号的集合,它是计算机程序加工处理的对象。客观事括数值、字符、声音、图形、图像等,它们本身并不是数据,只有通过编码变成能被计算机识别、存储和处理的符号形式后才是数据。例如,例l_pan style="font-family:宋体">中的一批整型数据。
;;;;数据元素:是数据的基本单位,在计算机程序中通常是作为一个整行考虑和处理的。例如,例pan style="font-family:宋体">.pan>中的一个整型数据。
;;;;数据项:数据结构中讨论的小单位。若数据元素可再分,则每一个独立的处理单元是数据项,数据元素是数据项的集合;若数据元素不可再分,则数据元素和数据项是同一概念。例如,例pan style="font-family:宋体">.pan>中的整型数据不可再分,一个整型数据既是数据元素也是数据项。但例pan>.3中的课程()这个数据元素可再分,课程号、课程名是数据项,不是数据元素了。
;;;;数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。这个概念涉及了两个内容:一个是数据元素,另一个是数据元素之间的相互关系。数据元素不是孤立存在的,在它们之是存在某种相互关系。
;;;;逻辑结构:是数据元素之间的相互逻辑关系,它与数据的存储无关,是独立于计算机的。
;;;;物理结构(或存储结构):是数据结构在计算机中的表示(又称映像),括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
.......


