数据结构与算法设计:Pascal语言——青少年信息学奥林匹克竞赛培训教材

分類: 图书,计算机/网络,程序设计,Pascal Delphi,
作者: 张文又,王学红,郭莲凤主编
出 版 社: 北京理工大学出版社
出版时间: 2006-6-1字数: 394000版次: 1页数: 259印刷时间: 2008/07/01开本: 16开印次: 3纸张: 胶版纸I S B N : 9787564007430包装: 平装内容简介
在联合国教科文组织的倡导下,自1989年至今国际信息学奥林匹克学科竞赛(IOI)已经举办了17届。在世界各国青少年优秀选手竞展雄姿的舞台上,中国代表队战绩辉煌。
与IOI同步的全国青少年信息学奥林匹克分区联赛(NOIP)的开展,提高了我国青少年的科学素养,促进了信息科技活动的普及,选拔出了大量的计算机拔尖人才,受到了众多信息学爱好者的关注。
目前在竞赛中多数选手选用Pascal语言。Pascal语言功能强大,数据类型丰富,程序结构严谨,便于阅读和理解。应用Pascal语言程序设计求解问题,核心是数据结构和算法的整合。因此,系统研究数据结构和算法,编程技能将如虎添翼。
在目前的图书市场上,有关Pascal语言数据结构和算法的竞赛辅导教材极少。见到一些是写给大学生的,不适合中小学生阅读。为了帮助中小学生学习数据结构和算法知识,特聘请具有丰富竞赛辅导经验的一线教师和曾在国际信息学奥林匹克学科竞赛中获得金牌的优秀选手共同编写了这本书。本书是Pascal语言(小学版)和Pascal语言(中学版)的后继教材,内容紧扣信息学竞赛大纲,结构严谨,语言简练,希望它能为读者提高竞赛技艺奉献绵薄之力
目录
第1章数据结构与算法的引入
1.1数据结构的概念
1.2算法
1.3建立数学模型
1.4程序的调试
习题及参考答案
第2章指针和动态数据结构
2.1指针变量的定义及基本使用
2.2链表
习题及参考答案
第3章文件
3.1文本文件的逻辑组织
3.2文本文件的基本操作
3.3文本文件应用举例
习题及参考答案
第4章树
4.1树的概念
4.2二叉树
4.3树的存储结构
4.4树的遍历
4.5最优二叉树
习题及参考答案
第5章图
5.1图的概念
5.2图的遍历
5.3图的最短路
5.4最小生成树
5.5图的应用
习题及参考答案
第6章排列和组合
6.1加法原理和乘法原理
6.2排列
6.3组合
习题及参考答案
第7章高精度计算
7.1高精度基本计算
7.2高精度计算的优化
习题及参考答案
第8章排序法
8.1插入排序
8.2希尔排序
8.3选择排序
8.4冒泡排序
8.5快速排序
8.6堆排序
8.7基数排序(多关键字排序)
8.8各种内部排序方法的比较
习题及参考答案
第9章搜索策略
9.1搜索的基本知识
9.2穷举搜索
9.3回溯搜索
9.4广度优先搜索
9.5分支定界
习题及参考答案
第10章分治策略
10.1分治原理
10.2二分法
10.3递推法的分治处理
习题及参考答案
第11章动态规划
11.1动态规划的基本思想
11.2动态规划的进一步讨论
11.3记忆化搜索的应用
习题及参考答案
第12章算法的综合应用
附录
附录1编译器开关表
附录2FreePascal和TrurboPascal的主要区别
书摘插图
第1章数据结构与算法的引入
“程序=数据结构+算法”,这是著名计算机科学家N.Wirth提出的程序公式.从中可以看出,编程解决各种各样的实际问题,只学习掌握好诸如Pascal、C等程序设计语言是远远不够的。另外还必须具备数据结构和算法的相关知识。前者主要讲述客观世界中纷繁复杂的事物及其内在的联系如何有效地在计算机中进行表示,后者主要讲解建立在这种表示基础上的一些常用的解决实际问题的思想、方法和步骤。二者是一个相辅相成的统一体,是缺一不可的两个方面。有了它们以后,我们才能比较顺利地编写程序。
比如针对表1-1的学生档案,如果想编写一个优雅而高效的程序,让计算机帮助我们迅速准确地从中查找是否有某个人,此人的性别、民族、语文成绩是什么,或求出所有学生的总成绩,或统计少数民族的学生人数,或按总成绩排列顺序等,需要做的事情主要有以下三点:
(1)把表中数据及数据之间的关系转换成计算机所能处理的形式,输入到计算机中。
(2)用适当的方式,完成数据及其关系在计算机中高效的存储,以方便问题求解和算法的优化。
(3)依据数据及其关系和它们在计算机中的存储形式构造一个高效的算法,完成问题求解。
前两点是选择适当的数据结构,第三点是设计算法。可见,所谓程序设计实质上就是数据结构的选用和算法设计这两者的有机组合。
……
