数据结构(Java语言描述)
上QQ阅读APP看书,第一时间看更新

前言

在物质世界中,一切事物投影到计算机世界之中全部都表现为数据。这些数据来源于现实,表示某种具体的意义,具有统一的表示方法,因而构成计算机程序处理的对象。研究数据在计算机中的表示方法、关联方法、存储方法以及在其之上的处理方法,就构成了数据结构课程的主要内容。

随着以云计算、物联网、大数据、移动互联为代表的第3次信息技术浪潮的发展,无论软件设计思想、程序设计语言、软件开发环境,还是最终的应用场景如今都发生了深刻的变革。首先,从程序设计方法来讲,传统的以C语言为代表的结构化程序设计方法早已转变为面向对象的程序设计方法了,而且在云计算技术的引领之下程序设计方法正在逐渐向面向服务的设计方法(SOA+RESTful)发展和转移。其次,从人才培养方面来说,不但出现了新专业,如软件工程、网络工程、物联网工程等;而且专业方向也越分越细了,如云计算技术方向、大数据技术方向、智能手机方向等。

因此,按“C语言程序设计→C++程序设计→数据结构→……”的线路开展教学的课程设置模式越来越无法适应第3次IT浪潮发展的要求了。也正因为如此,越来越多的院校在试着打破传统的课程设置模式。例如,根据专业方向的需要直接将Java语言作为入门语言组织教学,为此就形成了诸如“Java程序设计→数据结构→大数据技术(Hadoop+HBase)→……”之类课程设置方案。

本教材正是基于这种时代大变革的要求而编写的教材。全书以Java为基础,将面向对象的思想融入到数据结构设计和算法设计之中,通过精选基础理论内容、降低理论难度和抽象性、加强实践环节等措施来增强学生的面向对象程序设计能力和应用能力培养和提高,并力求取得较好的教学效果。同时,基于Java语言已经提供了诸如栈、队列、链表、字符串、数组、集合等内置数据结构的状况,兼顾大数据技术、物联网技术等新专业方向的对地理位置、图像、视频等数据处理的需要,本教材强化了诸如串、矩阵、树和图等数据结构的设计和应用,从而为新兴的技术应用提供更多的支持。

本书在编写时力求体现以下5大特色。第一,教学定位清楚,本书面向应用型本科院校学生,立足于把数据结构的基本概念和基本算法讲清楚,讲透彻,第二,教学内容先进,全书以Java语言为工具,用面向对象的思想来描述各种的数据结构的定义和相关操作算法的实现。第三,教学目标明确,知识结构完整,在教学内容安排方面强调既要方便教学,又要方便自学,因此针对数据结构的基本算法提供完整的Java源代码实现,而针对其他算法只提供分析和设计思路,源代码留给读者拓展实现。第四,教学理念先进,坚持以应用为纲,避免了传统数据结构教材重理论轻实用的弊端,因此本书针对每一种数据结构都特别突出相关数据结构的应用与实践。第五,教学模式完善,坚持以能力培养为中心,全书不仅配备了丰富、符合教学目标的课后习题,还为每章配备了从知识点出发进行设计的、能真正培养学生应用能力的实训。本书最后一章提供了综合项目实训,通过6个实训任务来提高学生的综合应用与实践能力。

本书由四川大学锦城学院的罗福强老师、刘英老师和电子科技大学成都学院的杨剑老师共同编写。其中,刘英老师编写第1章的部分和第2、3章,罗福强老师编写了第1章的部分和第4、5、9章,杨剑老师编写了第6、7、8章。本书最后由罗福强统稿和审核。

特别感谢四川大学锦城学院的陶德元教授对本书的编写提出了很多中肯的意见。同时,也向所有其他帮助和支持本书编写的人表示感谢!

编者

2015年12月