数据结构及算法分析实践指导 - 中国地质大学(武汉)实验教学系列教材 - 中国高校教材图书网
书名:
数据结构及算法分析实践指导
中国地质大学(武汉)实验教学系列教材
ISBN: ISBN 978-7-5625-3340-5
责任编辑:
作者:
吴让仲 王瑾 张晓峰 编著
相关图书
装订: 0
印次: 1-1
开本: 16开
定价:
¥32.00
折扣价:¥30.40
折扣:0.95
节省了1.6元
字数:
435千字
出版社:
中国地质大学出版社
页数:
272页
出版日期:
2014-06-01
每包册数:
国家规划教材:
省部级规划教材:
入选重点出版项目:
获奖信息:
内容简介:
第一章概论,简述如何利用数据结构知识将实际问题转化为用计算机解决的问题,数据结构上机平台Microsoft Visual Studio C++ 6.0(SP6),尤其着重介绍调试工具Debug的使用方法,为后面章节中调试程序打好基础。介绍算法的定义和算法时间复杂度的表示方法以及分析算法复杂度的技巧,传授获取算法实际运行时间的经验。 第二章线性表,介绍第一种线性结构的数据结构,每个数据最多只有一个前驱和最多只有一个后继,分别用数组和指针实现顺序表和链表,讲述如何在Debug中观察变量的地址和变量中存储的值,最后讲述了一个经典的问题即约瑟夫环(Josephus Problem)的实现过程。 第三章堆栈和队列,讲述了另两种线性表堆栈和队列,堆栈是一种先进后出的线性表(FILO),队列是一种先进先出的线性表(FIFO),讲述这两种线性表在日常生活中的广泛应用,以及如何用数组和链表实现堆栈与队列。在本章的最后,演示了用堆栈实现编译系统中判断表达式中符号时匹配的算法,并通过上机实现。 第四章字符串,回顾了C语言中关于字符串操作的库函数,讲述字符串的匹配算法,字符串的匹配算法有传统的朴素匹配算法和快速匹配的KMP算法。本章重点论述KMP算法的思想,Next数组的求取,为什么KMP算法源串指针不需要回溯等问题。在本章的实验部分介绍了KMP算法的模块化设计方法和调试技巧。 第五章数组,学习最后一种线性数据结构,数组所有元素的数据类型是一样的,它们在内存中的地址是连续分配的,占有连续的内存空间。在本章中讲解了同学们最头痛的问题,数组与指针的关系,用多个具体的实例演示内存空间的数据如何用数组形式和指针形式访问,通过学习加深同学们对数组和指针的理解。在本章中还简述了一些特殊的数组和稀疏矩阵,在实验部分使用三元组实现了稀疏矩阵的转置算法。 第六章树,讲解第一种非线性数据结构,树中数据元素之间的关系不再是一对一的关系,而是一对多的关系,体会树的递归定义。介绍了二叉树、满二叉树、完全树、搜索树、平衡树以及各种树的特点、树遍历算法。传授树的表示和实现的方法,树的查找、插入算法思想。本章最后讲述堆的概念,它使用数组来实现的一种树结构,其他的树结构一般使用指针来实现。在实验部分,演示了堆的建立和删除过程,并在调试工具中观察中间结果。 第七章图,简述图的基本概念和使用范围、图的ADT以及图的邻接矩阵表示法、图的遍历方法和最小生成树算法。在本章的实验部分介绍最短路径算法(Dijkstra),如何从图的邻接矩阵中求取单元多目标的最短路径,对于具体实际图给出该算法的应用。在本章实验部分,给出了Dijkstra算法的调试方法和实验数据。 第八章查找和排序,介绍基于各种数据结构的各种查找和排序算法,分析它们的时间复杂度。论述查找和排序算法是相融合的,互相包含互相配合,排序的目的是为了查找,有的查找算法中也包括了排序。简述了哈希算法、哈希表和哈希函数的设计以及处理冲突的方法。在实验部分,演示了一个系统软件的建立过程,提供菜单功能,将系统中的各种排序和查找算法连接起来,并介绍了用另一种计算算法实践运行时间的方法。 第九章综合实验,在本章中综合运用前面所讲的各种数据结构模块功能,开发学生信息管理系统,将链表、查找、排序、图和堆栈等功能模块融合在一起。按照软件工程的工作流程,严格实现了模块化程序设计,使同学们体会并各自开发一个独立模块,最后合并到系统,提高(或培养)同学们的团队合作精神。 附录提供了一些数据结构设计的题目,编写这些题目有助于同学们培养解决实际问题的能力。同时提供了一份数据结构报告的样例,为同学们写报告作参考。
作者简介:
章节目录:
第一章 概论 第二章 线性表 第三章 堆栈和队列 第四章 字符串 第五章 数组 第六章 树 第七章 图 第八章 查找和排序 第九章 综合实验 附录 参考文献
精彩片段:
书 评:
其 它: