商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
数据结构与算法:C语言实现 |
|
|
|
数据结构与算法:C语言实现 |
|
基本信息·出版社:科学出版社
·页码:359 页
·出版日期:2009年06月
·ISBN:7030245172/9787030245175
·条形码:9787030245175
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:信息管理与信息系统专业规划教材
·图书品牌:科瀚伟业
内容简介 《数据结构与算法:C语言实现》是为“数据结构”课程编写的教材,主要介绍各种基本类型的数据结构及其算法实现。《数据结构与算法:C语言实现》所有算法都有算法功能说明、算法思想分析、详尽的实例描述、C语言编写并可编译执行的完整程序及运行结果图示,典型算法附有算法分析。《数据结构与算法:C语言实现》是数据结构的入门书籍,结构严谨,条理清晰,按照线性数据结构、层次数据结构和网状数据结构的顺序,由易到难介绍主要抽象数据类型及其应用,最后介绍各种查找和排序方法。抽象的数据结构原理与算法实现紧密结合的写作特点使读者能够快速而卓有成效地掌握数据结构原理和经典算法,以加深读者对数据结构和算法的理解,从而提高编程能力。
《数据结构与算法:C语言实现》可以作为高等院校信息管理类专业的本科和专科教材,也可以作为其他理工科专业的选修教材或实验指导教材。
编辑推荐 《数据结构与算法:C语言实现》共10章。第1章为数据结构概述,内容包括数据结构和抽象数据类型等概念及算法复杂度的度量。第2章至第7章介绍线性表、栈、队列、串、数组、广义表、树和二叉树以及图等基本类型的数据结构及其应用。第8章介绍查找的基本概念,各种查找方法及其算法实现与算法分析。第9章介绍排序的概念及主要排序方法的排序原理、算法实现与算法分析。第10章介绍文件的基本概念及常用的文件结构。
《数据结构与算法:C语言实现》可以作为高等院校信息管理类专业的本科和专科教材,也可以作为其他理工科专业的选修教材。教师可以根据本学校的专业特点、学生情况和教学学时,选讲部分章节的内容。
目录 第1章 绪论
1.1 数据结构与程序设计
1.1.1 学习数据结构的意义
1.1.2 数据与数据结构
1.1.3 数据结构类型
1.2 抽象数据类型
1.2.1 C语言中的数据类型
1.2.2 抽象数据类型
1.3 算法分析
1.3.1 问题、算法与程序
1.3.2 算法效率的度量
本章小结
思考与练习题
第2章 线性表
2.1 线性表的基本概念
2.1.1 线性表的定义与特点
2.1.2 线性表的两类存储结构
2.2 顺序表的算法实现
2.2.1 顺序表的创建
2.2.2 顺序表内结点的插入
2.2.3 顺序表内结点的查找
2.2.4 顺序表内元素的删除
2.3 单链表的算法实现
2.3.1 单链表的结点结构和一般形式
2.3.2 单链表的创建
2.3.3 单链表内元素的插入
2.3.4 单链表内元素的查找
2.3.5 单链表内元素的删除
2.3.6 两个单链表的合并
2.4 双向链表的算法实现
2.4.1 双向链表的结点结构和一般形式
2.4.2 双向链表的创建
2.4.3 双向链表内元素的插入
2.4.4 双向链表内元素的查找
2.4.5 双向链表内元素的删除
2.5 循环链表的算法实现
2.5.1 循环链表的结点结构和一般形式
2.5.2 循环链表的创建
本章小结
思考与练习题
第3章 栈与队列
3.1 栈的基本概念
3.1.1 栈的定义与特点
3.1.2 栈的两类存储结构
3.2 顺序栈的算法实现
3.2.1 顺序栈的建立和入栈
3.2.2 顺序栈出栈
3.3 队列的基本概念
3.3.1 队列的定义与特点
3.3.2 队列的存储结构
3.4 顺序队列的算法实现
3.4.1 顺序队列建立和入队
3.4.2 顺序队列出队
3.5 循环队列的算法实现
3.5.1 循环队列建立和入队
3.5.2 循环队列出队
3.6 链队列的算法实现
3.6.1 链队列建立和入队
3.6.2 链队列出队
3.7 栈和队列的应用——算术表达式求值
本章小结
思考与练习题
第4章 串
4.1 串的基本概念
4.1.1 串的定义与特点
4.1.2 串的存储结构
4.2 串的算法实现
4.2.1 串赋值算法
4.2.2 求子串算法
4.2.3 串比较算法
4.2.4 串联接算法
4.3 串的模式匹配算法实现
4.3.1 串的朴素模式匹配算法
4.3.2 改进的模式匹配算法
本章小结
思考与练习题
第5章 数组和广义表
5.1 数组的基本概念
5.1.1 数组的定义与特点
5.1.2 数组的存储结构
5.2 特殊矩阵的压缩存储
5.3 矩阵的算法实现
5.4 广义表的基本概念
5.4.1 广义表的定义与图形表示
5.4.2 广义表的存储结构
5.5 广义表的算法实现
本章小结
思考与练习题
第6章 树和二叉树
6.1 树的基本概念
6.1.1 树的定义与基本术语
6.1.2 树的表示形式和存储结构
6.2 二叉树的基本概念
6.2.1 二叉树的定义与性质
6.2.2 二叉树的存储结构
6.2.3 树、森林和二叉树的转换
6.2.4 二叉树的遍历
6.3 二叉树算法实现
6.3.1 二叉树的建立
6.3.2 递归的二叉树前序遍历
6.3.3 非递归的二叉树前序遍历
6.3.4 递归的二叉树中序遍历
6.3.5 非递归的二叉树中序遍历
6.3.6 递归的二叉树后序遍历
6.3.7 非递归的二叉树后序遍历
6.4 哈夫曼树及其应用
6.4.1 哈夫曼树与哈夫曼编码
6.4.2 哈夫曼算法实现
本章小结
思考与练习题
第7章 图
7.1 图的基本概念
7.1.1 图的定义和术语
7.1.2 图的表示与存储结构
7.2 图的构造算法实现
7.2.1 构造数组存储的图
7.2.2 构造邻接表存储的无向图
7.2.3 构造邻接表存储的有向图
7.2.4 构造十字链表存储的有向图
7.2.5 构造邻接多重表存储的无向图
7.3 图的遍历算法实现
7.3.1 深度优先遍历算法
7.3.2 广度优先遍历算法
7.4 最小生成树算法实现
7.4.1 普里姆算法
7.4.2 克鲁斯卡尔算法
7.5 图的应用
7.5.1 拓扑排序
7.5.2 关键路径
7.5.3 最短路径
本章小结
思考与练习题
第8章 查找
8.1 查找的基本概念
8.1.1 相关术语
8.1.2 查找表结构
8.2 顺序查找算法的实现
8.3 折半查找算法的实现
8.4 分块查找算法
8.4.1 索引表
8.4.2 分块查找算法实现
8.5 二叉排序树及其算法实现
8.5.1 二叉排序树及其查找过程
8.5.2 二叉排序树插入结点的过程
8.5.3 二叉排序树删除结点的过程
8.5.4 二叉排序树的算法实现
8.6 平衡二叉树及其算法实现
8.6.1 平衡二叉排序树及其构造
8.6.2 平衡二叉排序树算法实现
8.7 B-树及其算法实现
8.7.1 B-树
8.7.2 B-树的查找
8.7.3 B-树的插入
8.7.4 B-树的删除
8.7.5 B-树的算法实现
8.8 哈希查找的算法实现
8.8.1 哈希表
8.8.2 哈希函数构造方法
8.8.3 哈希冲突的处理方法
8.8.4 哈希表的算法实现
本章小结
思考与练习题
第9章 排序
9.1 排序的基本概念
9.1.1 术语介绍
9.1.2 常用的内容排序算法简介类型
9.2 插入排序的算法实现
9.2.1 直接插入排序
9.2.2 希尔排序
9.3 快速排序的算法实现
9.4 选择排序的算法实现
9.4.1 直接选择排序
9.4.2 堆排序
9.5 归并排序的算法实现
9.6 基数排序的算法实现
9.7 各种内部排序方法的比较
9.7.1 时间性能
9.7.2 空间性能
9.7.3 排序方法的稳定性
9.8 外部排序
本章小结
思考与练习题
第10章 文件
10.1 文件的基本概念
10.1.1 文件记录与文件结构
10.1.2 文件操作
10.2 文件的存储结构
10.2.1 顺序文件
10.2.2 索引文件
10.2.3 散列文件
10.2.4 多关键字文件
10.2.5 倒排序文件
本章小结
思考与练习题
参考文献
……
序言 国家教育部于1998年7月6日公布了新的《普通高等学校本科专业目录》,将原来的经济信息管理、信息学、科技信息管理、林业信息管理和管理信息系统等专业合并为管理学科门类中的信息管理与信息系统专业。可以认为,这次合并既是学科相融的必然,也是国家信息化发展的需要。据有关资料介绍,到目前为止,全国已有超过200所高校开设了信息管理与信息系统专业。
自20世纪40年代以来,信息技术经过60余年的高速发展,它对人类社会各个领域的影响越来越广泛和深入,其影响最大、受益最多的当属管理和经济领域。信息作为最主要的经济资源,已经被人们所接受,并且愈来愈受到重视。信息技术的普及和推广,信息资源的组织、开发和利用,促进了企业的发展和产业结构的调整。当前所实施的电子商务、电子政务和数字图书馆等工程直接加速了生产力的发展和促进了社会的进步。我国政府提出的“以信息化带动工业化”的战略举措,必将有力提升我国的综合国力,同时也为信息管理与信息系统专业带来极大的发展机遇和发展空间。
信息管理与信息系统是一门交叉学科,它不是信息技术和管理科学的简单组合,而需要融合管理学、经济学、系统科学、运筹学和计算机科学于一体,因而,必须要有一套具有本专业特点的知识结构体系和适合本专业需要的教材体系。
信息管理与信息系统专业从1998年设立至今的10多年来,许多专家学者在专业建设和教材建设方面倾注了大量的心血,有力地促进了专业和学科的发展。但是,由于该专业具有跨度大、内容新和变化快等特点,如何培养适应现代信息技术高速发展需要的、具有创新能力的、既懂信息技术又懂管理的复合型人才,对广大教育工作者而言是一个巨大的挑战。
文摘 插图:
算法具有以下5个基本特征。
1)输入:一个算法具有零个或若干个输入,这些输入取自于某个特定的对象集合。
2)输出:一个算法至少产生一个输出或执行一个有意义操作,这些输出是同输入有着某些特定关系的量。
3)有穷性:算法的指令执行序列是有限的。
4)确定性:每一条指令的含义明确,无二义性。
5)可执行性:每一条指令都应在有限的时间内完成。
一个好的算法应满足以下5个目标。
1)正确性:算法应确切地满足具体问题的需求,这是算法设计的基本目标。
2)可读性:算法的可读性有利于人们对算法的理解,这既有利于程序的调试和维护,也有利于算法的交流和移植。算法的可读性主要体现在两方面:一是类名、对象名、方法名等的命名要见名知义;二是要有足够的注释。
3)健壮性:当输入非法数据时算法要能做出适当的处理,而不应产生不可预料的结果。
4)高时间效率:算法的时间效率是指算法的执行时间。对于同一个问题如果有多个算法可供选择,应尽可能选择执行时间短的算法。执行时间短的算法称作高时间效率的算法。
5)低内存要求:算法在执行时一般要求额外的内存空间。对于同一个问题如果有多个算法可供选择,应尽可能选择内存要求低的算法。