本书是为配合高职高专各专业学生更方便地学习数据结构而编写的,与作者2001年7月出版的教材《数据结构(C++描述)》一书相配套。本书包含3部分内容:习题解答、实习指导、模拟试题及参考答案。本书除给出配套教材中习题的解答外,还给出了综合题的算法分析、算法实现:给出了上机实习内容10个,每个上机实习内容包含多个上机题目,有实习目的、算法提示、算法分析、算法实现;另外,还给出了10套模拟试题,以检测学生学习数据结构、掌握数据结构知识的程度。\r\n\r\n 本书内容丰富、题型多样、涉及面广、适应性强,与《数据结构(C++描述)》一书的内容紧密结合。既可以作为高职高专学生使用,也可供各类学习数据结构的人员参考使用。\r\n
\r\n
第一部分 习题及解答 \r\n\r\n 第1章 绪论 \r\n\r\n 1. 1 基本概念 \r\n\r\n 1. I. 1 数据结构 \r\n\r\n 1. 1. 2 存储方式 \r\n\r\n 1. 1. 3 算法及评价 \r\n\r\n 1. 2 习题及解答 \r\n\r\n 1. 2. 1 配套教材中的习题 \r\n\r\n 1. 2. 2 综合题 \r\n\r\n 第2章 线性表 \r\n\r\n 2. 1 线性表的基本概念及其运算 \r\n\r\n 2. 1. 1 顺序表 \r\n\r\n 2. 1. 2 线性链表 \r\n\r\n 2. 1. 3 双向链表 \r\n\r\n 2. 2 习题及解答 \r\n\r\n 2. 2. 1 配套教材中的习题 \r\n\r\n 2. 2. 2 综合题 \r\n\r\n 第3章 栈和队列 \r\n\r\n 3. 1 基本概念及其运算 \r\n\r\n 3. 1. 1 栈 \r\n\r\n 3. 1. 2 队列 \r\n\r\n 3. 2 习题及解答 \r\n\r\n 3. 2. 1 配套教材中的习题 \r\n\r\n 3. 2. 2 综合题 \r\n\r\n 第4章 串 \r\n\r\n 4. 1 基本概念及运算 \r\n\r\n 4. 1. 1 串的顺序存储及运算 \r\n\r\n 4. 1. 2 串的链式存储及运算 \r\n\r\n 4. 2 习题及解答 \r\n\r\n 4. 2. 1 配套教材中的习题 \r\n\r\n 4. 2. 2 综合题 \r\n\r\n 第5章 多维数组和广义表 \r\n\r\n 5. 1 基本概念及运算 \r\n\r\n 5. 1. 1 多维数组的概念及存储 \r\n\r\n 5. 1. 2 特殊矩阵及压缩存储 \r\n\r\n 5. 1. 3 稀疏矩阵及压缩存储 \r\n\r\n 5. 1. 4 广义表的存储及运算 \r\n\r\n 5. 2 习题及解答 \r\n\r\n 5. 2. 1 配套教材中习题 \r\n\r\n 5. 2. 2 综合题 \r\n\r\n 第6章 树 \r\n\r\n 6. 1 树的基本概念 \r\n\r\n 6. 1. 1 树的定义 \r\n\r\n 6. 1. 2 基本术语 \r\n\r\n 6. 1. 3 树的表示 \r\n\r\n 6. 2 二叉树的基本概念和性质 \r\n\r\n 6. 2. 1 二叉树的定义 \r\n\r\n 6. 2. 2 二叉树的性质 \r\n\r\n 6. 2. 3 二叉树的存储结构 \r\n\r\n 6. 2. 4 二叉树的基本运算 \r\n\r\n 6. 2. 5 二叉树的应用 \r\n\r\n 6. 2. 6 树. 森林和二叉树之间的相互关系 \r\n\r\n 6. 3 习题及解答 \r\n\r\n 6. 3. 1 配套教材中的习题 \r\n\r\n 6. 3. 2 综合题 \r\n\r\n 第7章 图 \r\n\r\n 7. 1 图的基本概念及运算 \r\n\r\n 7. 1. 1 图的基本术语 \r\n\r\n 7. 1. 2 图的存储形式 \r\n\r\n 7. 1. 3 图的基本运算 \r\n\r\n 7, 2 习题及解答 \r\n\r\n 7. 2. 1 配套教材中的习题 \r\n\r\n 7. 2. 2 综合题 \r\n\r\n 第8章 查找 \r\n\r\n 8. 1 基本概念 \r\n\r\n 8. 1. 1 顺序查找 \r\n\r\n 8. 1. 2 二分查找 \r\n\r\n 8. 1. 3 分块查找 \r\n\r\n 8. 1. 4 二叉排序树查找 \r\n\r\n 8. 1. 5 散列查找 \r\n\r\n 8. 2 习题及解答 \r\n\r\n 8. 2. 1 配套教材中的习题 \r\n\r\n 8. 2. 2 综合题 \r\n\r\n 第9章 排序 \r\n\r\n 9. 1 基本概念 \r\n\r\n 9. 1. 1 插入排序 \r\n\r\n 9. 1. 2 交换排序 \r\n\r\n 9. 1. 3 选择排序 \r\n\r\n 9. 1. 4 归并排序 \r\n\r\n 9. 1. 5 分配排序 \r\n\r\n 9. 2 习题及解答 \r\n\r\n 9. 2. 1 配套教材中的习题 \r\n\r\n 9. 2. 2 综合题 \r\n\r\n 第二部分 上机实验指导 \r\n\r\n 第10章 上机环境 \r\n\r\n 10. 1 Turbo C十十上机环境 \r\n\r\n 10. 1. 1 建C++源程序 \r\n\r\n 10. 1. 2 打开已存在的C十十源程序 \r\n\r\n 10. 1. 3 编译并运行C++源程序 \r\n\r\n 10. 2 Visual C十十上机环境 \r\n\r\n 10. 2. 1 新建C++源程序并编译和运行 \r\n\r\n 10. 2. 2 打开已经存在的源程序并编译和运行 \r\n\r\n 10. 2. 3 源程序的保存 \r\n\r\n 第11章 实习内容 \r\n\r\n 实习题一 线性表的顺序存储 \r\n\r\n 实习题二 线性表的链式存储 \r\n\r\n 实习题三 栈和队列的应用 \r\n\r\n 实习题四 多维数组的应用 \r\n\r\n 实习题五 二叉树的遍历和应用 \r\n\r\n 实习题六 哈夫曼树的建立及应用 \r\n\r\n 实习题七 图的邻接矩阵和遍历 \r\n\r\n 实习题八 图的邻接表和遍历 \r\n\r\n 实习题九 查找 \r\n\r\n 实习题十 排序 \r\n\r\n 第三部分 模拟试题及参考答案 \r\n\r\n 模拟试题一 \r\n\r\n 模拟试题二 \r\n\r\n 模拟试题三 \r\n\r\n 模拟试题四 \r\n\r\n 模拟试题五 \r\n\r\n 模拟试题六 \r\n\r\n 模拟试题七 \r\n\r\n 模拟试题八 \r\n\r\n 模拟试题九 \r\n\r\n 模拟试题十 \r\n\r\n 模拟试题一参考答案 \r\n\r\n 模拟试题二参考答案 \r\n\r\n 模拟试题三参考答案 \r\n\r\n 模拟试题四参考答案 \r\n\r\n 模拟试题五参考答案 \r\n\r\n 模拟试题六参考答案 \r\n\r\n 模拟试题七参考答案 \r\n\r\n 模拟试题八参考答案 \r\n\r\n 模拟试题九参考答案 \r\n\r\n 模拟试题十参考答案 \r\n\r\n 参考文献 \r\n
\r\n
根据1999年8月教育部高教司制定的《高职高专教育基础课程教学基本要求》(以下简称《基本要求》)和《高职高专教育专业人才培养目标及规格》(以下简称《培养规格》)的精神, 由中国水利水电出版社北京万水电子信息有限公司精心策划, 聘请我国长期从事高职高专教学. 有丰富教学经验的教师执笔, 在充分汲取了高职高专和成人高等学校在探索培养技术应用性人才方面取得的成功经验和教学成果的基础上, 撰写了此套《21世纪高职高专 新概念教材》.
为了编写本套教材, 出版社进行了广泛的调研, 走访了全国百余所具有代表性的高等专科学校. 高等职业技术学院. 成人教育高等院校以及本科院校举办的二级职业技术学院在广泛了解情况. 探讨课程设置. 研究课程体系的基础上, 经过学校申报. 征求意见. 专家评选等方式, 确定了本套书的主编, 并成立了编委会. 每本书的编委会聘请了多所学校主要学术带头人或主要从事该课程教学的骨干, 教学大纲的确定以及教材风格的定位均经过编委会多次认真讨论.
本套《21世纪高职高专新概念教材》有如下特点:
(1)面向21世纪人才培养的需求, 结合高职高专学生的培养特点, 具有鲜明的高职高专特色. 本套教材的作者都是长期在第一线从事高职高专教育的骨干教师, 对学生的基本情况. 特点和认识规律等有深入的了解, 在教学实践中积累了丰富的经验. 因此可以说, 每一本书都是教师们长期教学经验的总结.
(2)以《基本要求》和《培养规格》为编写依据, 内容全面, 结构合理, 文字简练, 实用性强. 在编写过程中, 作者严格依据教育部提出的高职高专教育“以应用为目的, 以必需. 够用为度”的原则, 力求从实际应用的需要(实例)出发, 尽量减少枯燥. 实用性不强的理论概念, 加强了应用性和实际操作性强的内容.
(3)采用“问题(任务)驱动”的编写方式, 引入案例教学和启发式教学方法, 便于激发学习兴趣. 本套书的编写思路与传统教材的编写思路不同:先提出问题, 然后介绍解决问题的方法, 最后归纳总结出一般规律或概念. 我们把这个新的编写原则比喻成“一棵大树. 问题驱动”的原则. 即:一方面遵守先见(构建)“树”(每本书就是一棵大树), 再见(构建)“枝”(书的每一章就是大树的一个分枝), 最后见(构建)“叶”(每章中的若干小节及知识点)的编写原则, 另一方面采用问题驱动方式, 每一章都尽量用实际中的典型实例开头(提出问题. 明确目标), 然后逐渐展开(分析解决问题), 在讲述实例的过程中将本章的知识点融入. 这种精选实例, 并将知识点融于实例中的编写方式, 可读性. 可操作性强, 非常适合高职高专的学生阅读和使用. 本书读者通过学习构建本书中的“树”, 由“树”找“枝”, 顺“枝”摸“叶”, 最后达到构建自己所需要的“树”的目的.
(4)配有实验指导和实训教程, 便于学生练习提高.
(5)配有动感电子教案. 为顺应教育部提出的教材多元化. 多媒体化发展的要求, 每本教材都配有电子教案, 以满足广大教师进行多媒体教学的需要. 电子教案用PowerPoint制作, 教师可根据授课情况任意修改.
(6)提供相关教材中所有程序的源代码, 方便教师直接切换到系统环境中教学, 提高教学效果.
总之, 本套教材凝聚了数百名高职高专一线教师多年的教学经验和智慧, 内容新颖, 结构完整, 概念清晰, 深入浅出, 通俗易懂, 可读性. 可操作性和实用性强.
本套教材适用于高等职业学校. 高等专科学校. 成人及本科院校举办的二级职业技术学院和民办高校.
新的世纪吹响了我国高职高专教育蓬勃发展的号角, 新世纪对高职教育提出了新的要求, 高职教育占据了全面素质教育中所不可缺少的地位, 在我国高等教育事业中占有极其重要的位置, 在我国社会主义现代化建设事业中发挥着日趋显著的作用, 是培养新世纪人才所不可缺少的力量. 相信本套《21世纪高职高专新概念教材》的出版能为高职高专的教材建设和教学改革略尽绵薄之力, 因为我们提供的不仅是一套教材, 更是自始至终的教育支持, 无论是学校. 机构培训还是个人自学, 都会从中得到极大的收获.
当然, 本套教材肯定会有不足之处, 恳请专家和读者批评指正.
21世纪高职高专新概念教材编委会
2001年3月
数据结构是计算机专业及相关专业的一门重要专业基础课, 也是一门必修的核心课程. 在计算机科学的各领域中, 都会使用到各种不同的数据结构, 如编译系统中要使用栈. 散列表. 语法树等, 操作系统中要使用队列. 存储管理表. 目录树等, 数据库系统中要使用线性表. 链表. 索引树等, 人工智能中要使用广义表. 检索树. 有向图等, 同样在面向对象的程序设计. 计算机图形学. 软件工程. 多媒体技术. 计算机辅助设计等领域, 都会用到各种不同的数据结构. 因此, 学好数据结构, 对从事计算机技术及相关领域的工作人员来说, 是非
常重要的, 它可以使你掌握各种常用的数据结构及算法实现, 以及每一种算法的时间复杂度分析和空间复杂度分析, 知道在哪种情况下, 使用哪种数据结构最方便, 为以后开发大型程序而使用各种不同的数据结构打下基础.
由于数据结构的原理和算法比较抽象, 而该课程一般在刚学完程序设计后开设, 学生的程序设计方面的知识较少. 因此, 对于具有一些计算机程序设计的初学者来说, 理解和掌握数据结构中的原理就比较困难, 在解答数据结构习题时, 往往感到无从下手, 更不知道算法如何描述. 如何编写, 作者在多年的教学中深有感触. 作者通过多年的教学实践, 收集. 整理进而编写了这本《数据结构(C十十描述)习题解答及实习指导》, 目的是:通过对习题的解答, 使学生充分掌握数据结构的原理. 求解数据结构问题的思路和方法, 以及最后编写出正
确的算法, 进一步加深对基本概念的理解, 提高分析问题和解决问题的能力, 为整个专业的学习打基础, 为适应今后编写大型的数据结构方面的算法打下坚实的基础.
本书是《数据结构(C十十描述)》的配套指导教材. 全书内容共分三个大部分. 第一部分为习题解答部分, 包含配套教材中的习题和一些综合题, 主要是对配套教材中的习题给出解答思路提示. 算法分析, 最后再给出完整的答案. 算法或程序. 每章的习题都包含基本概念和算法设计方面的题型, 以帮助学生掌握数据结构的基本概念, 提高用各种不同的数据结构分析问题. 解决问题的能力. 第二部分为上机实验及指导部分, 包含C十十的上机环境介绍, 并给出了10个上机实习内容, 每个上机实习都给出了多道上机题目, 在每个上机实习中, 都
介绍了实习目的. 采用的主要方法和算法设计技巧, 最后给出了完整的C十十源程序来实现算法, 所有C十十源程序都在C十十环境下运行通过. 通过这些实验, 可以使学生了解并学会如何运用数据结构知识去解决现实世界中的某些实际问题, 并具备设计较复杂算法的基本能力.
第三部分为模拟试题部分, 包含有模拟试题和参考答案. 模拟试题主要是为了帮助学生在学完数据结构课程后自我检验学习的效果. 有易. 较易. 中等. 较难等各种难度的题目分布在各套试题中, 每套试题中有选择. 判断. 填空. 应用. 算法设计等各种题目, 试题覆盖了教材中的大部分知识点, 有助于学生对课程的系统复习.
本书的目的是帮助学生学好数据结构这门课程, 所以在使用本书的过程中, 请注意以下几点:第一, 使用该书要与《数据结构(C十十描述)》这本配套教材一起使用, 以便与课程内容同步, 有利于进一步掌握和理解各种基础知识, 加深对课堂所讲授内容的理解. 第二, 算法设计是不惟一的, 每题除了书中给出的算法外, 读者可能还会有其他的算法, 这说明读者对这方面的知识掌握得很好. 第三, 该习题解答及指导, 是帮助学习和理解数据结构知识的, 请学生在做作业前, 先自己动脑思考. 动手写, 不要盲目照抄, 否则只会收到事倍功半的效果.
本书的最大特点是采用面向对象的程序设计语言(C十十语言)作为算法的描述语言, 所有算法都已经上机调试通过. 但是, 由于篇幅所限, 大部分算法都是以单独的函数形式给出, 若读者要运行这些算法, 还必须给出一些变量的说明及主函数来调用所给的函数. 因此, 本书中的算法描述比原来数据结构教材中用类Pascal 语言或类C语言描述算法更直观, 学生更容易理解和接受. 作者在十几年的数据结构课程教学中, 对数据结构中的各种算法进行了认真的研究和分析, 在这方面积累了丰富的经验, 因此, 本书中所选的综合题和习题都具有一
定的针对性, 都是针对特定的数据结构来进行描述的, 方便学生理解和接受, 并能为复杂的数据结构算法描述架桥铺路.
本书可以作为高职高专的学生和教师学习数据结构的参考资料, 也可作为数据结构自学者的参考书, 同时还可供从事计算机应用工作的工程与技术人员参考. 选用该指导书上机实习的学校, 可以根据学校本身的条件, 在10个实习题中有针对性的选一部分或全选.
本书是受中国水利水电出版社的委托, 为适应高职高专教学的需要, 由湖南计算机高等专科学校多位在第一线讲授数据结构课程的具有丰富教学经验的教师共同编著的. 参加编写的有李根强. 谢月娥, 全书由李根强老师统稿. 修改. 定稿. 在本书的编写过程中, 得到湖南计算机高等专科学校曹翌旺老师的大力支持, 在此深表感谢.
由于时间仓促及作者水平有限, 书中不妥和错误之处在所难免, 敬请广大读者批评指正.
编 者
2002年7月