本题集和清华大学出版社出版的教科书《数据结构》(第二版)相配套,该教材获第二届全国高校优秀教材国家级特等奖,电子部电子类专业优秀教材特等奖。本题集主要内容有:习题与学习指导,实习题和部分习题的提示或答案等三大部分,书末有一个附录(“数据结构算法(DSDEMO)演示”使用手册)。\r\n\r\n 其中习题篇的内容和教科书相对应,也分为12章,每一章大致由基本内容、学习要点、算法演示内容及基础知识题、算法设计题和算法练习的规格说明等6部分组成。实习题分成6组,每一组都有鲜明的主题,围绕1至2种数据结构安排4至9个题,每个题都有明确的练习目的和要求,在每一组中还都给出一个实习报告的范例,以供读者参考。\r\n\r\n 本书内容丰富,程序设计观点新颖,在内容的详尽程度上接近于课程辅导材料,不仅可作为大专院校的配套教材,也是广大工程技术人员和自学读者的颇有帮助的辅助教材。\r\n
\r\n
前言 \r\n\r\n 第一篇 习题与学习指导 \r\n\r\n 第o章 本篇提要与作业规范 \r\n\r\n 第1章 绪论(预备知识) \r\n\r\n 第2章 线性表 \r\n\r\n 第3章 栈和队列 \r\n\r\n 第4章 串 \r\n\r\n 第5章 数组和广义表 \r\n\r\n 第6章 树和二叉树 \r\n\r\n 第7章 图 \r\n\r\n 第8章 动态存储管理 \r\n\r\n 第9章 查找 \r\n\r\n 第10章 内部排序 \r\n\r\n 第11章 外部排序 \r\n\r\n 第12章 文件 \r\n\r\n 第二篇 实习题 \r\n\r\n 一. 本篇概述 \r\n\r\n 二. 实习步骤和实习报告规范 \r\n\r\n 实习0 \r\n\r\n 实习l 线性表 \r\n\r\n 实习2 栈. 队列与递归算法设计 \r\n\r\n 实习3 串及其应用 \r\n\r\n 实习4 数组和广义表 \r\n\r\n 实习5 树. 图及其应用 \r\n\r\n 实习6 存储管理. 查找和排序 \r\n\r\n 第三篇 部分习题的解答或提示 \r\n\r\n 附录 数据结构算法演示(DSDEMO)使用说明 \r\n\r\n 参考书目 \r\n
\r\n
“数据结构”是计算机学科的基础理论知识, 也是软件设计的技术基础, 主要研究信息在计算机中的组织和表示方法. “数据结构”课程的教学要求之一是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯, 其重要程度决不亚于知识传授. 因此在数据结构的整个教学过程中, 习题作业和上机实习是两个至关重要的环节. 为了帮助读者学好这门课程, 我们编写了这本指导性题集.
这本题集与清华大学出版社, 1992年出版的《数据结构》(第二版)一书是配套教材, 习题和实习都是按教科书的内容顺序编排的, 很多习题涉及教科书上的内容或算法, 因此最好读者手边能有这本教科书, 以便随时查阅.
习题作业的作用在于帮助学生深入理解教材内容, 巩固基本概念, 达到培养良好程序设计习惯的目的. 其中部分题目可作为检查对授课内容理解和掌握程度的手段, 大部分题是作为掌握算法设计技能的基本训练, 还有少量题用以提高程序设计能力. 本题集的第一篇含有全部400余个习题, 组织成12章, 分别与教科书中各章一一对应, 在每一章之前给出这一章的内容提要和学习要求. 这些习题是在编者多年教学过程中所积累资料的基础上, 参考大量国外教材之后精心设计而成的. 书中对特别推荐的题作了标记, 并对每道习题的难度按五级划分法给出了难度系数, 仅供参考.
涉及算法的习题侧重于局部程序设计, 即如何编好“小程序”(Programming—in—the—small). 但仅有这方面的训练还是不够的. 本题集的第二部分分别以线性表, 栈和队列. 串. 数组和广义表. 树和图以及查找和排序为核心设置了6组上机实习题, 每组有4至9个题可供读者自由选择. 希望这些实习题能对习题起到良好的补充作用, 使读者受到涉及程序系统设计的完整过程的综合训练, 体会系统结构设计(Programming—in—the—large)与“小程序”设计的区别, 培养合作能力, 因此, 可以说是为将来进行软件开发和研究工作的一次“实践演习”.
在本书的第三篇给出了部分习题的提示或解答. 对于多数有唯一确定解的题给出答案, 面对算法题则有选择性地作了示范解答或提示. 但算法的解答都不是唯一的, 我们的解答也不一定是完美的. 希望答案或提示能起到抛砖引玉的作用, 愿读者开发出更多更好的解法. 热忱欢迎读者将这些好的算法寄给我们, 在此预先表示感谢. 然而, 在此我们仍想特别强调的是, 本题集主要是为配合高等院校的教学而编写的, 因此, 为了培养学生独立思考和解决闻题的能力, 我们诚恳希望不要出版或编印本题集的更详尽的解答, 以免干扰学校正常的教学和本书的训练意图, 敬请谅解.
本题集的一个特点是强调规范化在算法设计基本训练中的重要地位. 在题集的习题篇中给出了算法书写规范, 在实习题篇中给出了实习步骤和实习报告的规范. 教学经验表明, 严格实施这些虽然比较繁琐的规范, 对于学生基本程序设计素养的培养和软件工作者工作作风的训练能起到显著的促进作用.
“算法动态模拟演示系统”是为学习并掌握数据结构中各类典型算法而开发的一个辅助教学软件, 它的主要特点是让计算机执行算法, 同时增加透明度, 令算法的每一步在机内执行的情况都显示在读者面前, 就此获得单从文字说明中无法获得的直观知识. 为便于读者参考, 在习题篇的每一章中列举了与该章相关的算法清单, 并在附录中提供该软件完整的使用说明.
本题集的旧版曾在计算机和计算机应用专业的本科生教学中得到广泛使用, 效果良好. 这本新版题集在力求反映程序设计和软件工程新思想方面作了一些探索, 如:模块化拍象和信息隐蔽. 软件生命周期等. 然而, 书中不可避免地存在着谬误和有争议之处, 编者诚恳地欢迎广大读者提出批评意见和建议, 在此谨向热情的读者致以衷心感谢.
严蔚敏 清华大学计算机技术与科学系
吴伟民 广东工业大学计算机一系
1998年7月