21世纪全国高职高专计算机系列实用规划教材——数据结构(C#语言描述)(含CD一张)

分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 陈广 主编
出 版 社: 北京大学出版社
出版时间: 2009-3-1字数:版次: 1页数: 279印刷时间:开本: 16开印次:纸张:I S B N : 9787301144756包装: 平装编辑推荐
丛书特点:针对性强,切合职业教育目标,重点培养职业能力,侧重技能传授。
实用性强,大量的经典真实案例,实训内容具体详细,与就业市场紧密结合。
适应性强,教程与实训二合一,适合于三年制和两年制高职高专,也同样适合于其他各类大中专院校。
强调知识的渐进性、兼顾知识的系统性,结构逻辑性强,针对高职高专学生的知识结构特点安排教学内容。
书中配套形式多样的习题,网上提供完备的电子教案,提供相应的素材、程序代码、习题参考答案等教学资源,完全适合教学需要。
教材系列完整,涵盖计算机专业各个方向;编者分布广泛,结合不同地域特点,适合不同地域读者。
内容简介
本书使用C#语言及面向对象的方法讲解了数据结构的基础知识,并针对数据结构中的难点及关键点制作了配套的视频教程,使用动画加讲解的方法对数据结构及算法进行了详细的介绍。
全书共分10章,第1-6章主要介绍了线性表、栈、队列、串、树、图这些基本的数据结构;第7、8章本书使用C#语言及面向对象的方法介绍了数据结构的基础知识,并针对数据结构中的难点及关键点,配套了视频教程,使用动画加讲解的方式对数据结构及算法进行了详细地介绍。介绍了查找和排序算法及哈希表;前9章每章的结尾部分均配备了实训指导,用以加深对各个章节的理解;第10章是综合实训部分,通过实例演示数据结构及算法在程序中的使用。附书光盘内容为与本书配套使用的视频教程。
本书体系新颖,层次清晰,特别注重可读性和实用性,并结合数据结构知识深入C#类库进行解析。全书通谷易懂、由浅入深,不但使读者了解了数据结构知识,而且对C#语言有了更进一步的认识。
本书既可以作为高等职业院校计算机及相关专业的教材,也适合作为自学教材以及C#程序开发人员的参考书。
目录
第1章 绪论
1.1 什么是数据结构
1.1.1 数据结构的产生与发展
1.1.2 数据和数据结构
1.1.3 数据的逻辑结构
1.1.4 数据的存储结构
1.1.5 数据类型
1.2 算法与算法分析
1.2.1 算法
1.2.2 算法设计的目标
1.2.3 算法的时间复杂度
1.2.4 算法的空间复杂度
1.3 本章小结
1.4 习题
第2章 线性表
2.1 线性表的定义
2.2 线性表的顺序存储结构——顺序表
2.2.1 顺序表的特点
2.2.2 数组
2.2.3 System.Collections.ArrayList
2.2.4 类型安全
2.3 线性表的链式存储结构——链表
2.3.1 单向链表
2.3.2 循环链表
2.3.3 双向链表
2.4 本章小结
2.5 实训指导:虚拟线性表
2.6 习题
第3章 栈和队列
3.1 栈
3.1.1 栈的概念及操作
3.1.2 System.Collections.Stack
3.1.3 栈的应用
3.1.4 双向栈
3.2 队列
3.2.1 队列的概念及操作
3.2.2 循环队列
3.2.3 System.Collections.Queue
3.3 本章小结
3.4 实训指导:虚拟循环队列
3.5 习题
第4章 串
4.1 串的基本概念
4.2 Strin9
4.3 System.Text.StringBuilder
4.4 串的模式匹配
4.4.1 Brute.Force算法
4.4.2 KMP算法
4.5 本章小结
4.6 实训指导:求最长公共子串
4.7 习题
第5章 树
5.1 树的基本概念
5.1.1 树的定义
5.1.2 树的表示
5.1.3 树的基本术语
5.2 二叉树
5.2.1 二叉树的基本概念
5.2.2 二叉树的存储结构
5.3 二叉树的遍历
5.3.1 二叉树的深度优先遍历
5.3.2 二叉树的广度优先遍历
5.4 线索二叉树
5.4.1 线索二叉树的定义
……
第6章 图
第7章 查找
第8章 哈希表
第9章 排序
第10章 综合实训——八数码问题
参考文献
书摘插图
第1章 绪论
在面向对象技术中,数据的组织方式对于一个软件的优劣、效率和质量具有举足轻重的作用,实质上程序设计就是对确定的问题构造一种好的结构,并设计一种好的算法,也就是人们常说的“程序设计=数据结构+算法”。因此要编写出一个“好”软件,就必须分析所需处理的对象的特性以及各种对象之间存在的关系。这些问题就是“数据结构”这门学科所要研究的主要问题。
1.1 什么是数据结构
随着计算机的日益普及,人类已经进入以信息化为标志并飞速发展的时代。而数据作为信息的载体,随着计算机技术的发展,需要由计算机处理的数据量随之增大,数据类型也随之增多,而不仅仅局限于单纯的数值数据,更多的是用于表示文字、图像、声音等的非数值数据,在数据类型增多的同时,数据结构也更加复杂。因此,大多数的计算机程序不但要完成运算,还要进行数据的存储、检索和处理。首先通过以下3个例子来简单地认识一下数据结构。
【例1—1】 新生入学时,需要注册每个学生的基本信息,包括学生的班级、姓名、性别、籍贯、出生年月和民族等,并为每个学生分配一个学号,见表1—1。通过这个表可以看出每个学生的学号是唯一的,并且它们按照一定的顺序进行排列,而这就是一种简单的数学模型,通常称为线性表。
……