数据结构

当前位置:首页 > 教材 > 高职高专 > 数据结构

出版社:北京大学
出版日期:2009-3
ISBN:9787301144756
作者:陈广
页数:279页

章节摘录

  第1章 绪论  在面向对象技术中,数据的组织方式对于一个软件的优劣、效率和质量具有举足轻重的作用,实质上程序设计就是对确定的问题构造一种好的结构,并设计一种好的算法,也就是人们常说的“程序设计=数据结构+算法”。因此要编写出一个“好”软件,就必须分析所需处理的对象的特性以及各种对象之间存在的关系。这些问题就是“数据结构”这门学科所要研究的主要问题。  1.1 什么是数据结构  随着计算机的日益普及,人类已经进入以信息化为标志并飞速发展的时代。而数据作为信息的载体,随着计算机技术的发展,需要由计算机处理的数据量随之增大,数据类型也随之增多,而不仅仅局限于单纯的数值数据,更多的是用于表示文字、图像、声音等的非数值数据,在数据类型增多的同时,数据结构也更加复杂。因此,大多数的计算机程序不但要完成运算,还要进行数据的存储、检索和处理。首先通过以下3个例子来简单地认识一下数据结构。  【例1—1】 新生入学时,需要注册每个学生的基本信息,包括学生的班级、姓名、性别、籍贯、出生年月和民族等,并为每个学生分配一个学号,见表1—1。通过这个表可以看出每个学生的学号是唯一的,并且它们按照一定的顺序进行排列,而这就是一种简单的数学模型,通常称为线性表。

前言

  数据结构是计算机科学中最重要的课程之一,它对程序设计思想的建立和提升有着重要意义,既可以为后续计算机课程学习奠定扎实的基础,又能提高读者分析和解决问题的能力,并且能够显著地减少读者在学习新技术时学习曲线的坡度。  1.本书特点  (1)减少数学公式的使用。  数学对于相当一部分高职生来说并不是那么精通,减少数学公式的使用可以有效降低数据结构的学习门槛。使用其他方式也可以把数据结构描述得很清楚。  (2)抛弃伪代码。  本书的所有代码均为可运行代码,它可以让读者看到实实在在的结果,也可以通过断点调试、单步运行、修改参数等方式查看数据变化,更深刻地理解数据结构。  (3)配套视频教程。  笔者在多年的教学实践中发现,只要方法得当,算法的讲解比代码的讲解更容易让人接受。使用动画的方式并配以适当讲解所产生的效果是文字无法替代的。为此笔者专门针对各种数据结构和算法制作了视频教程,以有效降低数据结构的难度。  (4)深入C#类库。  本书所介绍的很多数据结构在C#集合类中都有实现,如果对这些集合类没有深刻的理解,是很难写好程序的。本书以数据结构为切入点,深入到C#类库中剖析部分常用集合类的实现原理,以帮助读者提高C#语言的编程能力。  2.本书适用对象  阅读本书需要有较好的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  String  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  线索二叉树的定义    5.4.2  中序线索二叉树  5.5  树和森林    5.5.1  树的存储结构    5.5.2  森林、树、二叉树的相互转换  5.6  可绘制二叉树的设计    5.6.1  二叉树结点的位置关系    5.6.2  接口设计    5.6.3  二又树绘制类的设计    5.6.4  实现可绘制二又树  5.7  二叉树画树算法    5.7.1  满二叉树画法    5.7.2  界内画法    5.7.3  最小面积画法  5.8  本章小结  5.9  实训指导:虚拟二叉树  5.10  习题第6章  图  6.1  基本概念和术语  6.2  图的存储结构    6.2.1  邻接矩阵表示法    6.2.2  邻接表表示法  6.3  图的遍历    6.3.1  深度优先搜索遍历    6.3.2  广度优先搜索遍历    6.3.3  非连通图的遍历  6.4  生成树和最小生成树    6.4.1  生成树    6.4.2  最小生成树    6.4.3  普里姆算法    6.4.4  克鲁斯卡尔算法  6.5  最短路径    6.5.1  单源点最短路径    6.5.2  所有顶点之间的最短路径  6.6  本章小结  6.7  实训指导:迷宫最短路径问题  6.8  习题第7章  查找  7.1  查找的基本概念  7.2  顺序查找  7.3  二分查找    7.3.1  二分查找的基本原理    7.3.2  二分查找的算法实现    7.3.3  Array.BinarySearch方法    7.3.4  剖析System.Collections.SortedList  7.4  分块查找  7.5  二又查找树    7.5.1  二叉查找树的定义    7.5.2  二叉查找树的查找    7.5.3  二叉查找树的插入    7.5.4  二叉查找树的删除    7.5.5  二又查找树的代码实现  7.6  本章小结  7.7  实训指导:Array.BinarySearch的使用  7.8  习题第8章  哈希表  8.1  概念引入  8.2  构造哈希函数的方法    8.2.1  直接定址法    8.2.2  数字分析法    8.2.3  除留余数法  8.3  哈希冲突解决方法    8.3.1  闭散列法(开放地址法)    8.3.2  开散列法(链地址法)  8.4  剖析System.Collections.Hashtable    8.4.1  Hashtable的实现原理    8.4.2  Hashtable的代码实现  8.5  剖析Dictionary    8.5.1  Dictionary类实现原理    8.5.2  Dictionary的代码实现  8.6  本章小结  8.7  实训指导:虚拟哈希表  8.8  习题第9章  排序  9.1  排序的基本概念  9.2  插入排序    9.2.1  直接插入排序    9.2.2  希尔排序  9.3  交换排序    9.3.1  冒泡排序    9.3.2  快速排序  9.4  选择排序    9.4.1  直接选择排序    9.4.2  堆排序  9.5  归并排序    9.5.1  二路归并排序    9.5.2  二路归并排序的实现  9.6  本章小结  9.7  实训指导:使用IComparer接口进行排序  9.8  习题第10章  综合实训——八数码问题  10.1  什么是八数码问题  10.2  八数码问题的解析    10.2.1  从初始状态到达目标状态是否有解    10.2.2  使用什么方法求解八数码问题的最优解    10.2.3  如何避免重复访问一个状态    10.2.4  怎样记录查找路径    10.2.5  使用什么数据结构表示棋盘状态  10.3  设计目标  10.4  界面设计  10.5  代码编写    10.5.1  MoveDirection.cs    10.5.2  AIResult.cs    10.5.3  HashHelpers.cs    10.5.4  SimpleDietionary.cs    10.5.5  NumSwitch.cs    10.5.6  IEightNumAl.cs    10.5.7  BFS_AI.cs    10.5.8  MainForm.cs  10.6  调试运行  10.7  思考与改进参考文献

编辑推荐

  《数据结构(C#语言描述)》特点:针对性强,切合职业教育目标,重点培养职业能力,侧重技能传授。  实用性强,大量的经典真实案例,实训内容具体详细,与就业市场紧密结合。  适应性强,教程与实训二合一,适合于三年制和两年制高职高专,也同样适合于其他各类大中专院校。  强调知识的渐进性、兼顾知识的系统性,结构逻辑性强,针对高职高专学生的知识结构特点安排教学内容。  书中配套形式多样的习题,网上提供完备的电子教案,提供相应的素材、程序代码、习题参考答案等教学资源,完全适合教学需要。  教材系列完整,涵盖计算机专业各个方向;编者分布广泛,结合不同地域特点,适合不同地域读者。

作者简介

《数据结构(C#语言描述)》使用C#语言及面向对象的方法讲解了数据结构的基础知识,并针对数据结构中的难点及关键点制作了配套的视频教程,使用动画加讲解的方法对数据结构及算法进行了详细的介绍。全书共分10章,第1-6章主要介绍了线性表、栈、队列、串、树、图这些基本的数据结构;第7、8章《数据结构(C#语言描述)》使用C#语言及面向对象的方法介绍了数据结构的基础知识,并针对数据结构中的难点及关键点,配套了视频教程,使用动画加讲解的方式对数据结构及算法进行了详细地介绍。介绍了查找和排序算法及哈希表;前9章每章的结尾部分均配备了实训指导,用以加深对各个章节的理解;第10章是综合实训部分,通过实例演示数据结构及算法在程序中的使用。附书光盘内容为与《数据结构(C#语言描述)》配套使用的视频教程。 《数据结构(C#语言描述)》体系新颖,层次清晰,特别注重可读性和实用性,并结合数据结构知识深入C#类库进行解析。全书通谷易懂、由浅入深,不但使读者了解了数据结构知识,而且对C#语言有了更进一步的认识。 
《数据结构(C#语言描述)》既可以作为高等职业院校计算机及相关专业的教材,也适合作为自学教材以及C#程序开发人员的参考书。

图书封面


 数据结构下载



发布书评

 
 


精彩短评 (总计26条)

  •     看了前面两章,还不错的;
  •     视频做的很不错
  •     不说什么,内容一般般
  •     这本书比较适合作为大学课堂的教科书,讲解较详细。
  •     用作教科书不错
  •     只想说这本书买的很欣慰,通俗易懂,看着舒服
  •     内容较浅,价格略高。
  •     bixupin jiyong
  •     这本书学C#的必看,我先买了一本一不小心被家里狗撕破了,现在又要买一本
  •     书还没看,不过质量还不错,速度也很快
  •     是冲着光盘才买这书的,收到货时,书是没问题的,不过光盘裂成两块,当天就把情况反馈给当当,差不多一个月了,不见当当有任何回馈.没想到当当的服务是这样子的,见识了.
  •     其实书没什么好说的,关键是这物流太给力。
    本来说1月26日到,结果1月27日中通速递给我打电话说快递员都放假了,年后给我发过来,我就说书到哪里了?电话里那人说到了我家附近的一个快递点,我说那我就直接去取好了。于是我就骑车子过去,按照地图上标记的大概位置,转了几圈终于找到了,这个快递点居然在一个废品回收站里面,院子脏的一塌糊涂,乱七八糟摆着好多快递件,一只狗和一只很脏的小白猫在快递件中间穿梭,看我进了院子,一个人从貌似废弃的工厂一样的掉玻璃的房子里面出来,只见此人穿着敞怀的军绿棉袄,外面罩着一个皮子外翻的夹克衫,腰上系着蓝色布带子(还好不是麻绳哈),穿着皱巴巴的军绿棉裤,脚踩磨没了跟的爆漆皮鞋,左手里端着饭盆,右手用筷子往嘴里扒拉饭菜,一边吃一边问我要找哪个邮件,当时我脑袋里强烈的闪出一个人来——犀利哥!
    总结:中国快递业真的很震撼!
  •     不是教材类书,印刷质量很是一般.不到280页的书卖到38元抵得上外文译本了.如果在书店直接选书我可能不会选它了.完全是冲着陈广老师才买的这本书...
  •     书不错,比较适合新手,易读,建议没有基础的学习这本书,只是送货速度有点慢
  •     书的质量很好,我很喜欢,带一张光盘。省的输入代码了!
  •     给部门买的书籍,整体不错
  •     书还不错!就是当当的速度太慢了点!今天总算收到了!
  •     挺不错的一本数据结构的书。
  •     C#数据结构的书本来就少。能讲的这么让人容易读懂的就更少了。这个价钱,值了!
  •     陈广老师的课讲得不错,生动形象,废话少,不像很多培训老师车轱辘话很多。
  •     书不错。最好的是有视频配套学习。很难得。
  •     只看了一点,不过感觉有点难度,看这个要有C#的基础~
  •     优点:第一,写的通俗易懂,很适合我这样的菜鸟;第二,有视频教学;第三,有C#实例。缺点:内容略少了点。
  •     这本书很好,很详细。
  •     最好的一点是我看得懂c#,不过建议懂C++的朋友,买数据结构C语言版,严蔚敏老师写的。
  •     书正在看,质量也还行!
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024