分享
 
 
 

数据结构与算法C#语言描述(图灵计算机科学丛书)

数据结构与算法C#语言描述(图灵计算机科学丛书)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机与互联网,计算机科学理论,计算机数学,
  品牌: Michael McMillan

基本信息·出版社:人民邮电出版社

·页码:260 页

·出版日期:2009年

·ISBN:7115204276/9787115204271

·条形码:9787115204271

·包装版本:1版

·装帧:平装

·开本:16

·正文语种:中文

·丛书名:图灵计算机科学丛书

产品信息有问题吗?请帮我们更新产品信息。

内容简介《数据结构与算法C#语言描述》是在.NET框架下用C#语言实现数据结构和算法的第一本全面的参考书。《数据结构与算法C#语言描述》介绍的方法非常实用,采用了时间测试而非大O表示法来分析算法性能。内容涵盖了数据结构和算法的基本原理,涉及数组、广义表、链表、散列表、树、图、排序搜索算法以及更多概率算法和动态规则等高级算法。此外,书中还提供了.NET框架类库中的C#语言实现的数据结构和算法。

《数据结构与算法C#语言描述》适合作为C#数据结构课程的教材,同时也适合C#专业人士阅读。

媒体推荐“这是一本绝佳的介绍C#语言数据结构的优秀著作,对于数据结构课程极具价值!”

——CHOICE杂志

编辑推荐随着.NET框架的广泛应用,C#已经成为最受欢迎的程序设计语言之一。但是,市面上尚无用C#语言讲述数据结构和算法的图书,广大C#程序员不得不将自 己转换C++或Java描述的数据结构,费时费力,而且容易出错。《数据结构与算法C#语言描述》填补了这一空白。而且更加难能可贵的是,作者基于自己多年的教学和实践经验,从开发实战出发,采用了一种与一般数据结构图书不同的讲解方式:充分利 用.NET框架中现成的数据结构类,先讲述各种数据结构怎么在开发中选用,怎样用来解决实际问题,在有了感性认识之后,再深入研究如何实现;同时,用更加 实用的时间测试方法代替常规的大O表示法来分析算法性能,避免了复杂的数学推导。书中除涵盖了数组、广义表、链表、散列表、树、图、排序、搜索等常规数据 结构和算法外,还讨论了概率和动态规划等方面的高级算法。

中文版对原书的代码进行了全面的调试,改正了不少原版存在的问题,保证了代码的质量和技术内容的准确性。

《数据结构与算法C#语言描述》是C#程序员不可或缺的实用参考书,也适合作为应用型高校相关专业.NET平台开发课程的教材。

目录

第1章 Collections类、泛型类和Timing类概述

1.1 群集的定义

1.2 群集的描述

1.2.1 直接存取群集

1.2.2 顺序存取群集

1.2.3 层次群集

1.2.4 组群集

1.3 CollectionBase类

1.3.1 用ArrayList实现Collection类

1.3.2 定义Collection类

1.3.3 实现Collection类

1.4 泛型编程

1.5 时间测试

1.5.1 一个简单化的时间测试

1.5.2 用于.NET环境的时间测试

1.5.3 TimingTest类

小结

练习

第2章 数组和ArrayList

2.1 数组基本概念

2.1.1 数组的声明和初始化

2.1.2 数组元素的设置和存取访问

2.1.3 检索数组元数据的方法和属性

2.1.4 多维数组

2.1.5 参数数组

2.1.6 锯齿状数组

2.2 ArrayList类

2.2.1 ArrayList类的成员

2.2.2 应用ArrayList类

小结

练习

第3章 基础排序算法

3.1 排序算法

3.1.1 数组类测试环境

3.1.2 冒泡排序

3.1.3 检验排序过程

3.1.4 选择排序

3.1.5 插入排序

3.2 基础排序算法的时间比较

小结

练习

第4章 基础查找算法

4.1 顺序查找

4.1.1 查找最小值和最大值

4.1.2 自组织数据加快顺序查找速度

4.2 二叉查找算法

4.3 递归二叉查找算法

小结

练习

第5章 栈和队列

5.1 栈、栈的实现以及Stack类

5.1.1 栈的操作

5.1.2 Stack类的实现

5.2 Stack类

5.2.1 Stack构造器方法

5.2.2 主要的栈操作

5.2.3 Peek方法

5.2.4 Clear方法

5.2.5 Contains方法

5.2.6 CopyTo方法和ToArray方法

5.2.7 Stack类的实例:十进制向多种进制的转换

5.3 队列、Queue类以及Queue类的实现

5.3.1 队列的操作

5.3.2 Queue的实现

5.3.3 Queue类:实例应用

5.3.4 用队列排序数据

5.3.5 源自Queue类的优先队列

小结

练习

第6章 BitArray类

6.1 激发的问题

6.2 位和位操作

6.2.1 二进制数制系统

6.2.2 处理二进制数:按位运算符和移位运算符

6.3 按位运算符的应用

6.4 整数转换成二进制形式的应用程序

6.5 移位的示例应用程序

6.6 BitArray类

6.6.1 使用BitArray类

6.6.2 更多BitArray类的方法和属性

6.7 用BitArray来编写埃拉托斯特尼筛法

6.8 BitArray与数组在埃拉托斯特尼筛法上的比较

小结

练习

第7章 字符串、String类和StringBuioder类

7.1 String类的应用

7.1.1 创建String对象

7.1.2 常用的String类方法

7.1.3 Split方法和Join方法

7.1.4 比较字符串的方法

7.1.5 处理字符串的方法

7.2 StringBuilder类

7.2.1 构造StringBuilder对象

7.2.2 获取并且设置关于sbingBuildcr对象的信息

7.2.3 修改StringBuilder对象

7.3 String类与StringBuilder的性能比较

小结

练习

第8章 模式匹配和文本处理

8.1 正则表达式概述

8.2 数量词

8.3 使用字符类

8.4 用断言修改正则表达式

8.5 使用分组构造

8.5.1 匿名组

8.5.2 命名组

8.5.3 零宽度正向预搜索断言和零宽度反向预搜索断言

8.6 CapturesCollection类

8.7 正则表达式的选项

小结

练习

第9章 构建字典:DictionaryBase类和SortedList类

9.1 DictionaryBase类

9.1.1 DictionaryBase类的基础方法和属性

9.1.2 其他的DictionaryBase方法

9.2 泛型KeyValuePair类

9.3 Sorted[Jst类.。

小结

练习

第10章 散列和Hashtaboe类

10.1 散列概述

10.2 选择散列函数

10.3 查找散列表中数据

10.4 解决冲突.

10.4.1 桶式散列法

10.4.2 开放定址法

10.4.3 双重散列法

10.5 Hashtable类

10.5.1 实例化Hashtable对象并且给其添加数据

10.5.2 从散列表中分别检索键和数值

10.5.3 检索基于键的数值

10.5.4 Hashtable类的实用方法

]0.6 Hashtable的应用:计算机术语表

小结

练习

第11章 链表

11.1 数组存在的问题

11.2 链表的定义

11.3 面向对象链表的设计

11.3.1 Node类

11.3.2 LinkedList类

11.4 链表设计的改进方案

11.4.1 双向链表

11.4.2 循环链表

11.5 使用Iteratot.类

11.5.1 新的LinkedList类

11.5.2 实例化Iterator类

11.6 泛型工,inked L,ist类和泛型Node类

小结

练习

第12章 二叉树和二叉查找树

12.1 树的定义

12.2 二叉树

12.2.1 构造二叉查找树

12.2.2 遍历二叉查找树

12.2.3 在二叉查找树申查找节点和最大/最小值

12.2.4 从二叉查找树申移除叶子节点

12.2.5 删除带有一个子节点的节点

12.2.6 删除带有两个子节点的节点

小结

练习

第13章 集合

13.1 集合的基础定义、操作及属性

13.1.1 集合的定义

13.1.2 集合的操作

13.1.3 集合的属性

13.2 第一个用散列表的Set类的实现

13.2.1 类数据成员和构造器方法

13.2.2 Add方法

13.2.3 Remove方法和Size方法

13.2.4 Union方法

13.2.5 Intersection方法

13.2.6 Subset方法

13.2.7 Difference方法

13.2.8 测试CSet实现的程序

13.3 CSet类的BitArray实现

13.3.1 使用BitArray实现的概述

13.3.2 BitArray集合的实现

小结

练习

第14章 高级排序算法

14.1 希尔排序算法

14.2 归并排序算法

14.3 堆排序算法

14.4 快速排序算法

14.4.1 快速排序算法的描述

14.4.2 快速排序算法的代码

14.4.3 快速排序算法的改进

小结

练习

第15章 用于查找的高级数据结构和算法

15.1 AVL树

15.1.1 AVL树的基本原理

15.1.2 AVL树的实现

15.2 红黑树

15.2.1 红黑树规则

15.2.2 红黑树的插入

15.2.3 红黑树实现代码

15.3 跳跃表

15.3.1 跳跃表的基本原理

15.3.2 跳跃表的实现

小结

练习

第16章 图和图的算法

16.1 图的定义

16.2 由图模拟真实世界系统

16.3 图类

16.3.1 顶点的表示

16.3.2 边的表示

16.3.3 图的构造

16.3.4 图的第一个应用:拓扑排序

16.3.5 拓扑排序算法

16.3.6 拓扑排序算法的实现

16.4 图的搜索

16.4.1 深度优先搜索

16.4.2 广度优先搜索

16.5 最小生成树

16.6 查找最短路径

16.6.1 加权图

16.6.2 确定最短路径的Dikstra算法

16.6.3 Dikstra算法的代码

小结

练习

第17章 高级算法

17.1 动态规划

17.1.1 动态规划实例:计算斐波纳契数列

17.1.2 寻找最长公共子串

17.1.3 背包问题

17.2 贪心算法

17.2.1 贪心算法实例:找零钱问题

17.2.2 采用哈夫曼编码的数据压缩

17.2.3 用贪心算法解决背包问题

小结

练习

参考文献

索引

……[看更多目录]

序言在专业程序员的成长过程中,对于数据结构与算法的学习至关重要。虽然有许许多多关于数据结构与算法的书籍,但是这些书籍通常都是大学教材,并且是使用在大学里讲授的Java语言或C++语言编写的。C#言正在成为一种广受欢迎的编程语言,这本书旨在面向C#程序员介绍数据结构与算法的基础知识。

C#言根植在一个功能非常丰富的.NET框架开发环境中。在.NET框架类库中包含有一套数据结构类(也称为群集类),这套类的范围广泛,从Array类、Array[,ist类牙llCollection类到Stack类和IlQueue类,再到HashTable类和lSortedList类。学习数据结构与算法的学生在学习如何实现它们之前可以先看看如何使用数据结构。以前,老师在构建完整的栈数据结构之前只能抽象地讲解栈的概念,而现在老师可以通过向学生们展示如何用栈执行一些计算(如数制之间的转换),立即展示数据结构的实用工具。有了这些知识后,学生可以在课后学习数据结构(或算法)的基本原理,甚至可以构造他们自己的实现。

本书主要提供了对数据结构与算法的实用概述,这是所有计算机程序员们需要知道和了解的。基于这个原因,本书没有涵盖数据结构与算法的正规分析。因此,本书没有一个数学公式,也一次都没有提及大O分析(如果你不知道大O分析的含义,查看参考文献中提到的任何一本书都可以)。相反,本书把各种数据结构与算法作为求解问题的工具。书中讨论的数据结构与算法都用简单的时间测试进行了性能比较。

文摘插图:

数据结构与算法C#语言描述(图灵计算机科学丛书)

第1章 Collections类、泛型类和Timing类概述

本书采用c#语言来讨论数据结构与算法的开发和实现。书中用到的数据结构都可以在.NET框架类库System.Collections中找到。本章会逐步展开群集的概念,首先讨论自身特有的collection类的实现(采用数组作为我们实现的基础),接着会介绍.NET框架中Collection类的内容。

泛型是c#语言2.0版新增加的一个重要补充,它允许C#程序员可以独立地或者在一个类中编写函数的某一个版本,而且不需要为了不同的数据类型而多次重载此函数。c#言2.0版还为几种system.Collections数据结构实现泛型提供了一个专门的库System.Collections.Generic。本章将向读者介绍泛型编程。

本章最后会介绍一种用户定制的类——Timing类,后续的几个章节将会用它来衡量数据结构与/或算法的性能。这个类将取代大O分析法,这不是因为大O分析法不重要,而是因为本书采取了一种更为实用的方法来分析数据结构与算法。

1.1 群集的定义

群集(Collection)是一种结构化的数据类型,它存储数据并且提供数据向/从群集中添加、删除和更新操作,以及对群集的不同属性值的设置与返回操作。

群集分为线性群集和非线性群集。线性群集是一张元素列表,表中的元素顺次相连。线性群集中的元素通常由位置来决定次序(例如,第一个元素、第二个元素、第三个元素,依此类推)。在现实世界中,购物清单就是很好的线性群集实例,而在计算机中(当然这也是真实世界)则把数组设计成线性群集。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有