出版时间:2010-9 出版社:北京邮电大学出版社 作者:单忆南,孙涵,唐军军 编著 页数:291
前言
本书是为熟悉C语言的读者学习数据结构而编写的教学辅导书,可帮助读者复习课程的基本内容,检验各种数据结构形式和算法的掌握程度,培养和提高用C语言解决实际问题的能力,力争使读者在学完本书之后,在运用数据结构解决实际问题和C语言编程方面都达到一个新的高度。 1.本书阅读指南 全书共分10章。 第1章主要介绍数据结构的基本概念,包括数据结构的应用、意义、时间复杂度、空间复杂度等内容。 第2章主要介绍线性表这个数据结构类型,包括线性表的定义和基本概念、线性表的存储、循环链表和双向链表等内容。 第3章主要介绍栈和队列的数据结构类型,包括栈的定义和基本操作、栈的存储、队列的定义和基本操作、队列的存储结构等内容。 第4章主要介绍串的数据结构类型,包括串的操作、串的模式匹配、以及KMP算法的理解等内容。 第5章主要介绍数组和广义表的数据结构类型,包括多维数组、特殊矩阵的存储、稀疏矩阵的存储、广义表的性质和操作等内容。 第6章主要介绍树和二叉树的数据结构类型,包括树和二叉树的性质和定义,二又树的遍历,表达式的二叉树表示,线索化二叉树,树和森林,霍夫曼树等内容。 第7章主要介绍图的数据结构类型,包括图的基本性质和概念、图的存储、图的遍历、图的连同性、最小生成树算法、最短路径问题、拓扑排序等内容。 第8章主要介绍查找操作及相应的数据结构,包括查找的定义、顺序查找、折半查找、分块查找、二叉排序树、平衡二叉树、B一树、哈希表和散列表等内容。 第9章主要介绍排序操作及应用的数据结构,包括排序的概念、插入排序、冒泡排序、选择排序、归并排序、基数排序、各种内部排序时间复杂度空间复杂度的比较和外部排序等内容。 第10章给出一套课程测试和一套研究生入学考试全真预测试题及参考答案。 2.本书的特色与优点 本书编写的指导思想是:在内容上重视数据结构的基本理论,利用c语言作为程序语言进行描述,覆盖课程全部基本教学要求;书中习题主要来自于经典数据结构教材中的经典习题,全书习题经过编者精挑细选,难度适中,适合各专业学习本课程的学生;在形式上根据教学实践经验和对相关内容的思考理解,简明描述课程的基本知识点、重点和难点内容,使学生迅速把握重点。
内容概要
本书是为熟悉C语言编程的读者学习数据结构而编写的教学辅导书,可帮助读者复习课程的基本内容,并学会用C语言使用相应的数据结构实现一定的算法和解决一些实际应用问题,力争使读者在学完本书之后,在课程的理解和掌握方面达到一个新的高度,本书也可供从事本课程教学的教师作参考书。 本书共分十章,包括数据结构概述、线性表、栈和队列、串和字符串、数组和广义表、树和二叉树、图、查找、排序,在全书最后给出了一套模拟试题和一套考研真题及参考答案。 本书每章内容均包括各基本知识点的要点归纳,并精选一些经典数据结构书中的经典例题(包括课程考试试题、主流教材课后难题以及考研真题),给出了解题思路和分析方法,题后提示了解题中应注意的问题。力争使读者在尽可能短的时间内,巩固课程基本概念,加深理解数据结构的基本知识并融会贯通,熟练掌握基本的编程方法并举一反三,不断提高读者的C语言编程能力和利用各种数据结构解决实际问题的能力。 本书可供学习数据结构课程的读者以及考研读者和从事课程教学的教师参考。
书籍目录
第1章 数据结构概念理解 1.1 答疑解惑 1.1.1 为什么要用数据类型来描述数据结构? 1.1.2 算法和程序有何区别? 1.1.3 怎样理解数据的逻辑结构和存储结构? 1.1.4 怎样理解数据结构在计算机课程中的核心地位? 1.1.5 如何计算算法的时间复杂度? 1.1.6 如何评价算法的好坏? 1.2 典型题解 题型1 数据结构基础知识 题型2 时间与空间复杂度的计算第2章 线性表 2.1 答疑解惑 2.1.1 如何理解线性表数据结构? 2.1.2 线性表的顺序存储结构和链式存储结构的区别是什么? 2.1.3 带头结点的单链表和不带头结点的单链表的区别是什么? 2.1.4 链表的指针修改的次序对结果的影响是什么? 2.1.5 各种链表存储结构的特点是什么? 2.1.6 顺序存储结构上的算法如何移植到链式存储结构上? 2.1.7 如何利用循环单链表实现队列的操作? 2.1.8 如何应用线性表? 2.1.9 顺序表的基本运算用c语言如何描述? 2.2 典型题解 题型1 线性表的基本概念 题型2 线性表的存储结构 题型3 链表的插入和删除 题型4 线性表元素查找 题型5 递归 题型6 归并 题型7 单链表的应用 题型8 单链表的应用 题型9 其他链表及应用第3章 栈与队列 3.1 答疑解惑 3.1.1 怎样理解栈? 3.1.2 栈的顺序存储结构和链式存储结构的区别是什么? 3.1.3 在进行人栈和出栈时应注意什么问题? 3.1.4 如何理解多栈的作用? 3.1.5 如何让两个栈共享同一存储空间? 3.1.6 如何应用栈? 3.1.7 怎样理解队列? 3.1.8 如何处理循环队列中的边界条件? 3.1.9 队列的顺序存储结构和链式存储结构的区别是什么? 3.1.10 如何理解双队列的作用? 3.1.11 如何应用队列 3.2 典型题解 题型1 栈和队列的基本概念 题型2 栈和队列的基本操作 题型3 栈和队列的状态分析 题型4 递归算法和递归工作栈 题型5 用栈求表达式的值 题型6 栈和队列的应用第4章 串 4.1 答疑解惑 4.1.1 怎样理解串? ……第5章 数组与广义表第6章 树和二叉树第7章 图第8章 查找第9章 排序第10章 课程测试与考研真题附录1 2009年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合试题附录2 2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合试题参考文献
章节摘录
采用数据类型来描述数据结构是基于以下考虑: (1)数据类型(Data Type)是一个值的集合和定义在这个值集上的一组操作的总称。解决现实问题就必须进行数据处理,而数据处理包括对数据进行查找、插入、删除、合并、排序、统计以及简单计算等的操作过程。 (2)数据类型是高级程序设计语言中的一个基本概念,它和数据结构的概念密切相关。一方面,在程序设计语言中,每一个数据都属于某种数据类型。类型明显或隐含地规定了数据的取值范围、存储方式以及允许进行的运算。可以认为,数据类型是在程序设计中已经实现了的数据结构。另一方面,在程序设计过程中,当需要引入某种新的数据结构时,总是借助编程语言所提供的数据类型来描述数据的存储结构。 (3)用高级语言数据类型来描述数据结构,更避免了低级语言的复杂性,增加了可读性和简洁性,又有利于算法的实现。 数据结构正逐步用抽象数据类型描述,其更能紧密地和面向对象程序设计联系起来。抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在该模型上的一组操作。 1.1.2算法和程序有何区别? 数据结构中的算法通常用高级语言来描述,但和高级语言有一定的区别。如:目前的数据结构算法常用类C和类Pascal来描述。类C和标准C有一定的区别,同时,算法着重思想的描述,可能省略了很多细节。因而算法往往需要进行适当的修改才能变成程序在机器上实现。 算法必须满足5个特征,但程序未必能满足有穷性。 可见,算法不同于程序。不要把算法看成程序,切忌将算法中的相应函数和数据类型直接照搬到程序中。
编辑推荐
《数据结构(C语言版)答疑解惑与典型题解》特点: (1)结构清晰、模式合理。《数据结构(C语言版)答疑解惑与典型题解》基本按照正规教学课本(主流教材)的顺序安排,不是对所有知识点详细铺陈,而是对核心知识点和常考题型做重点讲解。每章设计了两个板块,分别是:答疑解惑与典型题解。各内容安排为: 答疑解惑:突出核心知识,对重点、难点、易混淆的知识点进行剖析与解释,让学生掌握问题的本质。包括对重要定理、定义和公式的剖析。 典型题解:精选出常考题型与考研真题进行解析,增强学生的解题能力。《数据结构(C语言版)答疑解惑与典型题解》每一章都列举了大量的题目,并对其进行了详细分析评注,以便于帮助读者掌握本章的重点及迅速回忆本章的内容。(题目来源:一是主流教材课后难题,二是课程考试试题,三是经典好题,四是考研真题。) (2)针对性强、实用性强。《数据结构(C语言版)答疑解惑与典型题解》不是按照传统辅导书那种“内容简介-例题分析-习题”的模式编写,而是在听取大量一线教师和学生们建议的基础上,以突出针对性与实用性来安排内容的。学生们最需要的是解决他们学习过程中的“疑惑”以及掌握解题方法。《数据结构(C语言版)答疑解惑与典型题解》正是以“答疑解惑与典型题解”为中心,因而具有很强的针对性与实用性。 (3)《数据结构(C语言版)答疑解惑与典型题解》重点定位在疑难解惑与解题方法上,开拓解题思路,提高分析问题的能力,不仅授人以“鱼”,更在于授人以“渔”。 (4)《数据结构(C语言版)答疑解惑与典型题解》聘请执教多年且有较高学术造诣的名师编写,质量高,内容清晰。
图书封面
评论、评分、阅读与下载