数据结构与算法内容丰富,包含了计算机科学与技术的许多重要方面,分析问题和解决问题的思路的方法新颖,技巧性强,对学生的计算机软件素质的培养作用明显,��培养训练学生选用合适的数据结构与算法设计方法编写质量高、风格好的应用程序,学生需要不断地进行编程实践,将把实验与课程设计实践环节与理论教学相融合,通过实践教学促进数据结构与算法理论知识的学习,有效提高教学效果和教学水平。
全书共分为两部分,**部分介绍数据结构与算法基础知识和实验,第二部分讨论数据结构与算法课程设计。
第1章~第11章为**部分,包含了22个实验题目,这些实验题不但包括读者感兴趣的实验(例如纸牌游戏--“21点”),数据结构与算法的基本应用的实验(例如编写一个程序读入一个字符串,统计字符串中出现的字符及次数,然后输出结果,要求用一个二又排序树来保存处理结果,结点的数据元素由字符与出现次数组成,关键字为字符),对课本数据结构与算法的改进的实验(例如改进本书实现的求*小生树的Knlskal算法,用*大优先堆队列来实现按照边的权值顺序处理,用等价关系断判两个结点是否属于同一棵自由树以及合并自由树),还包括了解决实际问题的实验(例如采用散列文件实现电话号码查找系统),通过实验将极大地提高数据结构与算法的应用能力。每个实验都有目的与要求、工具/准备工作、实验分析、实验步骤、测试与结论以及思考与感悟。实验给出具体操作步骤,给出具体与实用的指导,让初学者不会面对实验题目而束手无策。希望读者通过实验能够学有所思,有所启迪与感悟。
第12章为第二部分课程设计共有11个项目,难易程度不同,简单的项目可以一个人单独完成,复杂的项目可由几个人共同完成,这些项目包括了实际课题的项目(例如开发排课软件与公园导游系统)、容易引起读者兴趣的项目(例如理论计算机科学家族谱的文档/视图模式)、需要通过查找资料进一步提高的项目(例如采用自适应形式的哈夫曼编码方案开发压缩软件)与向学生介绍计算机学科的各个领域的项目,例如介绍人工智能、专家系统、计算机模拟等“相关知识”,并尽可能在课程设计中应用“相关知识”,例如银行窗口排队模拟--离散事件模拟,用具有自学习功能的专家系统思想实现“动物游戏”等;课程设计项目一般都提供功能的扩展方法,基础较差的读者可只实现基础功能,对数据结构与算法有兴趣的读者可实现更强的功能,这样使不同层次的读者都会所有收获,通过做这些项目能快速提高读者解决实际问题的能力。每个项目都给m了分析与实现方法,还给出了一些改进建议,读者可以在完成基本任务的前提下对程序加以改进和提高。
本书讨论的数据结构与算法的实现都已在visual C++6.0、Visual C++20()5、VisualC++2005 Express、DeV-C++和MinGw Developm Studio开发环境中进行了严格测试,并向教师提供了完整的测试程序,读者可根据自己的理解,选择熟悉的开发环境,开发出功能更强的程序,逐步达到能独立应用所学数据结构与算法构造新结构与研究新算法。