数据结构与算法
基本信息
- 作者: 吴跃 李树全 尚明生 陈端兵 [作译者介绍]
- 丛书名: 面向计算机科学与技术专业规范系列教材
- 出版社:机械工业出版社
- ISBN:9787111288251
- 上架时间:2010-1-25
- 出版日期:2010 年2月
- 开本:16开
- 页码:244
- 版次:1-1
- 所属分类:
计算机 > 计算机科学理论与基础知识 > 数据结构
计算机 > 计算机科学理论与基础知识 > 计算理论 > 算法
推荐阅读
内容简介回到顶部↑
本书以基本数据结构和算法设计策略为知识单元,系统地介绍了数据结构的知识与应用、计算机算法的设计与分析方法,主要内容包括线性表、树、图和广义表、算法设计策略以及查找与排序算法等。
本书注重理论与实践相结合,内容深入浅出,可以作为高等院校计算机学科相关专业的教材或参考书,同时对计算机科技工作者也有参考价值。
本书注重理论与实践相结合,内容深入浅出,可以作为高等院校计算机学科相关专业的教材或参考书,同时对计算机科技工作者也有参考价值。
作译者回到顶部↑
本书提供作译者介绍
吴跃,四川省学术和技术带头人、国务院政府特殊津贴专家、教育部计算机科学与技术专业教学指导委员会委员、四川省教学名师、四川省高等学校省级教学团队计算机专业核心课程教学团队带头人。从事数据结构与算法课程的教学工作20余年,主持了国家863、教育部博士点基金、国防重点和省科技攻关等十余项科研项目,发表学术论文70余篇,获省部级科研奖5项、国家级教学成果奖2项,已编著出版《计算机操作系统》教材一部。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
出版者的话
序 言
前 言
教学建议
第1章 绪论1
1.1 计算机问题求解过程1
1.2 迷宫问题2
1.3 数据结构4
1.3.1 数据结构研究的内容4
1.3.2 数据结构概念6
1.4 算法10
1.4.1 算法概念及特性10
1.4.2 算法描述11
1.4.3 算法分析12
1.5 本章小结14
1.6 习题14
第2章 线性表16
2.1 线性表16
2.1.1 线性表的定义16
2.1.2 线性表的顺序存储20
序 言
前 言
教学建议
第1章 绪论1
1.1 计算机问题求解过程1
1.2 迷宫问题2
1.3 数据结构4
1.3.1 数据结构研究的内容4
1.3.2 数据结构概念6
1.4 算法10
1.4.1 算法概念及特性10
1.4.2 算法描述11
1.4.3 算法分析12
1.5 本章小结14
1.6 习题14
第2章 线性表16
2.1 线性表16
2.1.1 线性表的定义16
2.1.2 线性表的顺序存储20
前言回到顶部↑
什么是数据结构?数据结构又有什么作用?什么是算法?算法又有哪些行之有效的基本策略?什么是程序设计的基础?程序设计的能力又可以从哪些方面去提高?这是计算机专业的学生在学习中经常感到困惑的问题,也是利用计算机解决具体应用问题的程序员需要明白的问题,还是计算机教育工作者应该深思的问题。弄清楚了这些基本问题,以及它们之间的相互关系,无论是对学生的学习、教师的施教还是程序员的应用,都具有重要的意义和极大的帮助。
早在1976年,著名的计算机科学家、Pascal程序设计语言之父、结构化程序设计首创者、1984年图灵奖获得者沃斯(Niklaus Wirth)就提出了Algorithms + Data Structures = Programs(算法+数据结构=程序),在这个著名的公式中,“+”生动地表达了算法和数据结构的相互作用,是程序设计的精髓;“=”言简意赅地刻画了算法和数据结构是构成计算机程序的两个关键要素。
我们认为,程序设计包括算法、数据结构和程序设计语言三部分。算法是求解问题的过程描述;数据结构是对所要求解问题中的数据的存储和算法策略实现的支持;程序设计语言是使用计算机求解问题,是在计算机上实现算法和数据结构。
本书是根据《高等学校计算机科学与技术专业公共核心知识体系与课程》的指导思想编写而成的,涵盖了“数据结构”公共核心课程的知识单元。本书共七章,分为数据结构和算法两大部分。其中,数据结构部分(第1~4章)按数据元素之间存在的对应关系进行划分,分为表示一对一关系的线性表、表示一对多关系的树以及表示多对多关系的图和广义表,可以以线性表作为基本数据结构,从多个方向和层面上进行拓广,引出线性表的各类变形,将栈、队列、串视为线性表的特例,将数组、广义表、树和图视为线性表的扩展,如图1所示;算法部分(第5~7章)以查找和排序算法作为常用算法,所以该部分由算法设计策略、查找和排序组成。
图1数据结构关联图
各章具体内容如下:
第1章绪论,由吴跃编写。该章通过迷宫问题给出了数据结构的两大用途:存放要处理的数据和实现算法策略。该章还定义了数据结构的概念和相关术语,给出了算法和算法分析的概念。
第2章线性表,由尚明生编写。线性表表示数据元素之间一对一的关系。本章以线性表作为基本数据结构,从多个方向和层面进行拓广:引出线性表的各类变形,将栈、队列、串视为线性表的特例,将数组视为线性表在维数上的扩展。
第3章树,由陈端兵编写。树表示数据元素之间一对多的关系。本章以二叉树的性质、存储结构和遍历算法为基础,逐步拓展到二叉树的各类变形、树和森林以及树的变形。最后举例说明了树的应用。
第4章图和广义表,由李树全编写。图和广义表表示数据元素之间多对多的关系。本章分别介绍了图和广义表的概念、存储结构和遍历算法,并给出了图的经典应用。
第5章算法设计策略,由李树全编写。本章分别介绍了直接法、分治法、贪心法、动态规划法、回溯法、分支限界法6大类算法的设计策略、思想、应用特点和步骤,并举例说明了这些算法策略的应用。
第6章查找,由尚明生编写。在许多应用中都需要查找,可以将其视为一类基本而常用的算法,本章分别介绍了顺序表、索引表和散列表上的查找算法。
第7章排序,由陈端兵编写。和查找一样,在许多应用中也都需要排序,可以将其视为一类基本而常用的算法,本章分别介绍了插入、交换、选择、归并和基数5大类排序算法。
掌握了基本数据结构和算法策略,有助于选择和设计适合应用的数据结构,有助于设计更高效的算法,有助于提高编程能力。本书每章都有学习目标,还配有一定量的填空题、选择题、简答题和算法设计题,供读者练习。本书适用于高等院校计算机专业、信息技术类专业和软件工程相关专业的学生学习,也可供程序员参考。
最后,让我们一起一页一页地翻开这本丰富多彩的书,像一只漫游在数据结构这棵大树上的小虫,去领略各类数据结构的功用和风采,去品味各种算法策略的精妙和乐趣,去夯实计算机专业的基础,去提高编程的能力,去收获学习的果实。
编者
2009年11月
早在1976年,著名的计算机科学家、Pascal程序设计语言之父、结构化程序设计首创者、1984年图灵奖获得者沃斯(Niklaus Wirth)就提出了Algorithms + Data Structures = Programs(算法+数据结构=程序),在这个著名的公式中,“+”生动地表达了算法和数据结构的相互作用,是程序设计的精髓;“=”言简意赅地刻画了算法和数据结构是构成计算机程序的两个关键要素。
我们认为,程序设计包括算法、数据结构和程序设计语言三部分。算法是求解问题的过程描述;数据结构是对所要求解问题中的数据的存储和算法策略实现的支持;程序设计语言是使用计算机求解问题,是在计算机上实现算法和数据结构。
本书是根据《高等学校计算机科学与技术专业公共核心知识体系与课程》的指导思想编写而成的,涵盖了“数据结构”公共核心课程的知识单元。本书共七章,分为数据结构和算法两大部分。其中,数据结构部分(第1~4章)按数据元素之间存在的对应关系进行划分,分为表示一对一关系的线性表、表示一对多关系的树以及表示多对多关系的图和广义表,可以以线性表作为基本数据结构,从多个方向和层面上进行拓广,引出线性表的各类变形,将栈、队列、串视为线性表的特例,将数组、广义表、树和图视为线性表的扩展,如图1所示;算法部分(第5~7章)以查找和排序算法作为常用算法,所以该部分由算法设计策略、查找和排序组成。
图1数据结构关联图
各章具体内容如下:
第1章绪论,由吴跃编写。该章通过迷宫问题给出了数据结构的两大用途:存放要处理的数据和实现算法策略。该章还定义了数据结构的概念和相关术语,给出了算法和算法分析的概念。
第2章线性表,由尚明生编写。线性表表示数据元素之间一对一的关系。本章以线性表作为基本数据结构,从多个方向和层面进行拓广:引出线性表的各类变形,将栈、队列、串视为线性表的特例,将数组视为线性表在维数上的扩展。
第3章树,由陈端兵编写。树表示数据元素之间一对多的关系。本章以二叉树的性质、存储结构和遍历算法为基础,逐步拓展到二叉树的各类变形、树和森林以及树的变形。最后举例说明了树的应用。
第4章图和广义表,由李树全编写。图和广义表表示数据元素之间多对多的关系。本章分别介绍了图和广义表的概念、存储结构和遍历算法,并给出了图的经典应用。
第5章算法设计策略,由李树全编写。本章分别介绍了直接法、分治法、贪心法、动态规划法、回溯法、分支限界法6大类算法的设计策略、思想、应用特点和步骤,并举例说明了这些算法策略的应用。
第6章查找,由尚明生编写。在许多应用中都需要查找,可以将其视为一类基本而常用的算法,本章分别介绍了顺序表、索引表和散列表上的查找算法。
第7章排序,由陈端兵编写。和查找一样,在许多应用中也都需要排序,可以将其视为一类基本而常用的算法,本章分别介绍了插入、交换、选择、归并和基数5大类排序算法。
掌握了基本数据结构和算法策略,有助于选择和设计适合应用的数据结构,有助于设计更高效的算法,有助于提高编程能力。本书每章都有学习目标,还配有一定量的填空题、选择题、简答题和算法设计题,供读者练习。本书适用于高等院校计算机专业、信息技术类专业和软件工程相关专业的学生学习,也可供程序员参考。
最后,让我们一起一页一页地翻开这本丰富多彩的书,像一只漫游在数据结构这棵大树上的小虫,去领略各类数据结构的功用和风采,去品味各种算法策略的精妙和乐趣,去夯实计算机专业的基础,去提高编程的能力,去收获学习的果实。
编者
2009年11月
序言回到顶部↑
近20年里,计算机学科有了很大的发展,人们普遍认为,“计算机科学”这个名字已经难以涵盖该学科的内容,因此,改称其为计算学科(Computing Discipline)。在我国本科教育中,1996年以前曾经有计算机软件专业和计算机及应用专业,之后被合并为计算机科学与技术专业。2004年以来,教育部计算机科学与技术专业教学指导分委员会根据我国计算机专业教育和计算学科的现状,为更好地满足社会对计算机专业人才的需求,发布了《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》(以下简称《规范》),提出在计算机科学与技术专业名称之下,构建计算机科学、计算机工程、软件工程和信息技术四大专业方向。《规范》中四大专业方向的分类,在于鼓励办学单位根据自己的情况设定不同的培养方案,以培养更具针对性和特色的计算机专业人才。
为配合《规范》的实施,落实中央“提高高等教育质量”的精神,我们规划了“面向计算机科学与技术专业规范系列教材”。本系列教材面向全新的计算学科,针对我国高等院校逐步向新的计算机科学与技术专业课程体系过渡的趋势编写,在知识选择、内容组织和教学方法等方面满足《规范》的要求,并与国际接轨。本套教材具有以下几个特点:
(1) 体现《规范》的基本思想,满足其课程要求。为使教材符合我国高等院校的教学实际,编委会根据《规范》的要求规划本套教材,广泛征集在国内知名高校中从事一线教学和科研工作、经验丰富的优秀教师承担编写任务。
(2) 围绕“提高教育质量”的宗旨开发教材。为了确保“精品”,本系列教材的出版不走盲目扩大的路子,每本教材的选题都将由编委会集体论证,并由一名编委担任责任编委,最大程度地保证这套教材的编写水准和出版质量。
(3) 教材内容的组织科学、合理,体系得当。本套教材的编写注重研究学科的新发展和新成果,能够根据不同类型人才培养需求,合理地进行内容取舍、组织和叙述,还精心设计了配套的实验体系和练习体系。
(4) 教材风格鲜明。本套教材按4个专业方向统一规划,分批组织,陆续出版。教材的编写体现了现代教育理念,探讨先进的教学方法。
(5) 开展教材立体化建设。根据需要配合主教材的建设适时开发实验教材、教师参考书、学生参考书、电子参考资料等教辅资源,为教学实现多方位服务。
我们衷心希望本系列教材能够为我国高等院校计算机科学与技术等专业的教学作出贡献,欢迎广大读者广为选用。
为配合《规范》的实施,落实中央“提高高等教育质量”的精神,我们规划了“面向计算机科学与技术专业规范系列教材”。本系列教材面向全新的计算学科,针对我国高等院校逐步向新的计算机科学与技术专业课程体系过渡的趋势编写,在知识选择、内容组织和教学方法等方面满足《规范》的要求,并与国际接轨。本套教材具有以下几个特点:
(1) 体现《规范》的基本思想,满足其课程要求。为使教材符合我国高等院校的教学实际,编委会根据《规范》的要求规划本套教材,广泛征集在国内知名高校中从事一线教学和科研工作、经验丰富的优秀教师承担编写任务。
(2) 围绕“提高教育质量”的宗旨开发教材。为了确保“精品”,本系列教材的出版不走盲目扩大的路子,每本教材的选题都将由编委会集体论证,并由一名编委担任责任编委,最大程度地保证这套教材的编写水准和出版质量。
(3) 教材内容的组织科学、合理,体系得当。本套教材的编写注重研究学科的新发展和新成果,能够根据不同类型人才培养需求,合理地进行内容取舍、组织和叙述,还精心设计了配套的实验体系和练习体系。
(4) 教材风格鲜明。本套教材按4个专业方向统一规划,分批组织,陆续出版。教材的编写体现了现代教育理念,探讨先进的教学方法。
(5) 开展教材立体化建设。根据需要配合主教材的建设适时开发实验教材、教师参考书、学生参考书、电子参考资料等教辅资源,为教学实现多方位服务。
我们衷心希望本系列教材能够为我国高等院校计算机科学与技术等专业的教学作出贡献,欢迎广大读者广为选用。







点击看大图

加载中...

