数据结构(第2版)(21世纪高等学校规划教材 计算机科学与技术)
定 价:34.5 元
丛书名:21世纪高等学校规划教材·计算机科学与技术
- 作者:王震江 主编
- 出版时间:2013/10/1
- ISBN:9787302340287
- 出 版 社:清华大学出版社
- 中图法分类:TP311.12
- 页码:300
- 纸张:胶版纸
- 版次:2
- 开本:16开
本书融人编者多年的教学经验和体会,参考国内外流行教材,较全面地组织教材内容,提供大量的经典算法,并适当引入考研典型题例供学生学习,具有很强的实用性、易读性、针对性。本书的体系结构科学合理,可分为6个部分(10章),分别讲述绪论、线性表、树、图、查找与排序、文件。每章后附有习题,部分选自近年考研题目,以帮助深入理解相关内容。
本书适合作为工程型、应用型高校理工科相关专业数据结构课程的教材、本科高年级学生的考研参考书.也可作为程序设计自学者的参考书。
程序设计是计算机专业人员十分重要的基本功,是软件设计的基础,然而,程序设计的根基并不在程序设计中,而在程序设计之外。程序设计课程介绍特定的指令、语法、语句的编写规则,学习这些规则仅仅是最基础的编程训练,并不能解决如何提高编程能力的问题。这与许多应用型普通高校中初学程序设计课程的学生反映出来的问题是一致的,由于数学和物理基础薄弱,程序设计中必备的数理逻辑推理和思维能力不够强,学生在程序设计课程的学习中普遍感到困难,这种困难可能使学生对自己的编程能力产生怀疑,从而影响到学生对计算机专业的认同感和归属感。
程序设计是用来解决问题的,解决问题的关键是面对实际问题时有没有解题的想法,进而在想法的基础上找出解决问题的步骤,对其优化,最终形成一个解题的算法。在软件设计的实践中,问题千奇百怪,五花八门,没有一个定式,但迄今为止,在计算机领域中出现的大多数问题都有一些共性,包含相似的数据现象,研究这些共性和相似性,寻求解决各类问题的普适算法,可以使计算机专业的学生喜欢编程,热爱编程,并具备较强的编程能力,成为一个合格的计算机专业人才。“数据结构”就是这样一门提供能够解决具有共性和相似性问题的通用方法、有效提高编程能力的基础性课程。
“数据结构”原本是计算机专业的重要核心基础课程,近年来,随着信息技术的飞速发展,该课程的重要性已经为从事信息技术及其相关专业教学和研究的同仁们所认识。如今,“数据结构”已经不再是计算机专业独有的课程,而是发展成为高校中多个专业的重要基础课,如数学类、电子技术类、信息技术类等专业。
国内高校的计算机专业分为科学研究型、工程技术开发型、技术推广应用型三个层次。本书编写的深度和难度定位于后两个层次。本书在编者十几年教学和实践经验的基础上,参考了国内外流行教材,较全面地组织、安排了教材内容,提供了大量的经典算法,并适当引入了考研典型题例供学生学习,具有很强的实用性、易读性、针对性,融入了编者多年的教学经验和体会。本书的体系结构科学合理,内容精练。每章附有一定量的习题,其中部分选自近年来的考研题目,以帮助学生深入学习和理解相关章节的内容,并为学生的考研需求提供一定的条件。
根据国内工程型和应用型计算机专业普遍学习C语言的特点,本书使用C语言作为算法的描述语言。
本书可分为6个部分,分别讲述绪论、线性表、树、图、查找与排序、文件。
第1章概述数据结构可能涉及的内容和分析方法,讲解算法和程序的差异、算法的评价等问题。
第2~5章介绍线性表结构、特殊线性表——栈和队列、字符串和数组与广义表。从顺序存储结构和链表结构两个方面来阐述线性表的存储结构与建立在存储结构之上的算法设计,以及线性表的广泛应用,如栈、队列、字符串、数组、广义表等,并进一步讨论这些数据结构的应用,如程序调用、皇后问题、火车编组问题等。
第6章讨论树。本书与其他教材不同的是,深入讨论一般树的计数、层次、树高等基本问题。在二叉树的生成中讲解多种生成算法。在二叉树的前序、中序和后序遍历运算中讨论树的递归和非递归遍历算法,除此之外,还讨论了欧拉遍历和按层次遍历,线索二叉树及其应用,二叉树的典型应用——哈夫曼树和哈夫曼编码、排序树、平衡树、2-3树、红黑树、表示树、判定树等问题。
第7章讨论图。内容包括图、图的遍历、生成树问题、最短路径问题、拓扑排序和关键路径等。
第8章和第9章讨论目前常见的查找算法和排序算法。在查找算法中,从静态表、动态表和哈希表三个方面来研究查找算法,静态表的数据结构是线性表,动态表的查找主要有二叉树查找、B树查找和键树查找等,哈希表的构造和查找则用哈希算法来实现。在排序中分为内排序和外排序两个部分。内排序主要讨论插入排序、交换排序、选择排序、归并排序、基数排序等8种经典的排序算法。外排序讨论磁盘排序、胜者树和败者树、最佳归并树和磁带排序等。
第10章讨论文件。从文件的存储结构入手讨论文件的管理,包括顺序文件、索引文件、索引顺序文件、散列文件、多关键字文件等。
本书内容涵盖了目前国内数据结构课程涉及的几乎所有内容,有的进行了深入的讨论,有的比较初步,这与教材编写的指导思想有关。
本书由王震江担任主编,何英、邱莎、俞锐刚、阿圆任副主编。其中,王震江编写第1章、第2章、第6章,何英编写第7章、第10章,邱莎编写第8章、第9章,俞锐刚编写第3章,阿圆编写第4章、第5章。王震江对全书进行了统稿和主审,统一了图例。书中提供的算法通过了上机调试。
本书是云南省精品教材建设和昆明学院精品课程建设项目的成果。感谢清华大学出版社给予的大力支持。
由于作者水平有限,编写仓促,书中难免存在疏漏和错误,敬请读者不吝赐教。
本书的配套课件等相关资源可以从清华大学出版社网站www.tup.com.cn下载,下载及使用中遇到任何问题,请联系fuhy@tup.tsinghua.edu.cn。
编者
2013年5月于昆明
第1章 绪论
1.1数据结构概述
1.1.1引言
1.1.2数据结构有关概念及术语
1.1.3数据类型
1.2算法描述与实现
1.2.1算法的概念与特性
1.2.2算法的设计与实现
1.3算法的评价与分析
1.3.1评价标准
1.3.2算法的时间复杂性
1.3.3算法的空间复杂性
本章小结
习题l
第2章 线性表 第1章 绪论
1.1数据结构概述
1.1.1引言
1.1.2数据结构有关概念及术语
1.1.3数据类型
1.2算法描述与实现
1.2.1算法的概念与特性
1.2.2算法的设计与实现
1.3算法的评价与分析
1.3.1评价标准
1.3.2算法的时间复杂性
1.3.3算法的空间复杂性
本章小结
习题l
第2章 线性表
2.1线性表的基本概念
2.1.1线性表的定义
2.1.2线性表的存储结构
2.1.3线性表的运算
2.2顺序表
2.2.1顺序存储结构
2.2.2顺序表的运算
2.2.3线性表的遍历
2.2.4顺序存储的物理位置
2.2.5 线性表的顺序存储的主要特点
2.3链表
2.3.1单链表的定义与创建
2.3.2单链表的基本运算算法
2.3.3循环单链表
2.3.4双向链表
2.4顺序表和链表的比较
……
第3章 栈和列队
第4章 串
第5章 数组和广义表
第6章 树
第7章 图
第8章 查找
第9章 排序
第10章 文件
参考文献