《数据结构(C#语言描述)》
本文转载自abatei,数据结构学了很多次,但是只是知道硬性的概念,现在专攻C#语言,对编程语言也有了更深的认识,
买一本C#的数据结构来看看,再一次加深对数据结构的学习,真是一件让人高兴的事。
当当网可购买到,无需网上银行,可送货上门,货到付款
购买地址:
http://product.dangdang.com/product.aspx?product_id=20544747
如对本书有什么意见和建议可到概述作者的博客留言
http://cgbluesky.blog.163.com/
这是本书目录,另外之前也发布过一集二叉树的非递归遍历算法视频给大家试看,新的下载地址如下:
http://www.fileupyours.com/files/219335/5-2.swf
第1章 绪论
1.1 什么是数据结构
1.1.1 数据结构的产生与发展
1.1.2 数据和数据结构
1.1.3 数据的逻辑结构
1.1.4 数据的存储结构
1.2 算法与算法分析
1.1.5 算法
1.1.6 算法设计的目标
1.1.7 算法的时间复杂度
1.1.8 算法的空间复杂度
1.3 本章小结
1.4 习题
第2章 线性表
2.1 线性表的定义
2.2 线性表的顺序存储结构---顺序表
2.2.1 顺序表的特点
2.2.2 数组
视频2-1
2.2.3 剖析System.Collections.ArrayList
视频2-2
2.2.4 类型安全
2.3 线性表的链式存储结构---链表
2.3.1 单向链表
视频2-3
2.3.2 循环链表
视频2-4
2.3.3 双向链表
视频2-5
2.4 本章小结
2.5 实训指导:虚拟线性表
视频2-6
2.6 习题
第3章 栈和队列
3.1 栈
3.1.1 栈的概念及操作
3.1.2 剖析System.Collections.Stack
视频3-1
3.1.3 栈的应用
视频3-2
3.1.4 双向栈
3.2 队列
3.2.1 队列的概念及操作
3.2.2 循环队列
3.2.3 剖析System.Collections.Queue
视频3-3
3.3 本章小结
3.4 实训指导:虚拟循环队列
视频3-4
3.5 习题
第4章 串
4.1 串的基本概念
4.2 String
4.3 System.Text.StringBuilder
4.4 串的模式匹配
4.4.1 Brute-Force算法
视频4-1
4.4.2 KMP算法
视频4-2
视频4-3
4.5 本章小结
4.6 实训指导:求最长公共子串
视频4-4
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-1
5.3.2 二叉树的广度优先遍历
视频5-2
5.4 线索二叉树
5.4.1 线索二叉树的定义
5.4.2 中序线索二叉树
视频5-3
5.5 树和森林
5.5.1 树的存储结构
5.5.2 森林、树、二叉树的相互转换
视频5-4
5.6 可绘制二叉树的设计
5.6.1 二叉树的结点的位置关系
5.6.2 接口设计
5.6.3 二叉树绘制类的设计
5.6.4 实现可绘制二叉树
5.7 二叉树的画树算法
5.7.1 满二叉树画法
视频5-5
5.7.2 界内画法
5.7.3 最小面积画法
5.8 本章小结
5.9 实训指导:虚拟二叉树
视频5-6
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-1
6.4.4 克鲁斯卡尔算法
视频6-2
6.5 最短路径
6.5.1 单源点最短路径
视频6-3
6.5.2 所有顶点之间的最短路径
视频6-4
6.6 本章小结
6.7 实训指导:迷宫最短路径问题
视频6-5
6.8 习题
第7章 查找
7.1 查找的基本概念
7.2 顺序查找
7.3 二分查找
7.3.1 二分查找的基本原理
视频7-1
7.3.2 二分查找的算法实现
7.3.3 Array.BinarySearch方法
7.3.4 剖析System.Collections.SortedList
7.4 分块查找
视频7-2
7.5 二叉查找树
7.5.1 二叉查找树的定义
视频7-3
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-1
8.4.1 Hashtable的实现原理
8.4.2 Hashtable的代码实现
8.5 剖析Dictionary<TKey, TValue>
视频8-2
8.5.1 Dictionary<TKey, TValue>类实现原理
8.5.2 Dictionary<TKey, TValue>的代码实现
8.6 本章小结
8.7 实训指导:虚拟哈希表
视频8-3
8.8 习题
第9章 排序
9.1 排序的基本概念
9.2 插入排序
9.2.1 直接插入排序
视频9-1
9.2.2 希尔排序
视频9-2
9.3 交换排序
9.3.1 冒泡排序
视频9-3
9.3.2 快速排序
视频9-4
9.4 选择排序
9.4.1 直接选择排序
视频9-5
9.4.2 堆排序
视频9-6
9.5 归并排序
视频9-7
9.5.1 二路归并排序
9.5.2 二路归并排序的实现
9.6 本章小结
9.7 实训指导:使用IComparer<T>接口进行排序
视频9-8
9.8 习题
第10章 综合实训---八数码问题
10.1 什么是八数码问题
10.2 八数码问题的解析
视频10-1
10.2.1 从初始状态到达目标状态是否有解
10.2.2 使用什么方法求解八解码问题的最优解
10.2.3 如何避免重复访问一个状态
10.2.4 怎样记录查找路径
10.2.5 使用什么数据结构表示棋盘状态
10.3 设计目标
10.4 界面设计
视频10-2
10.5 代码编写
视频10-3
10.5.1 MoveDirection.cs
10.5.2 AIResult.cs
10.5.3 HashHelpers.cs
10.5.4 SimpleDictionary.cs
10.5.5 NumSwitch.cs
10.5.6 IEightNumAI.cs
10.5.7 BFS_AI.cs
10.5.8 MainForm.cs
10.6 调试运行
10.7 思考与改进
《数据结构(C#语言描述)》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- node.js开发平台
1.EDP:基于Node.JS与NPM的企业级开发平台 什么是EDP? EDP是一个基于Node.JS与NPM的企业级前端应用的开发平台.主要通过命令行的方式使用.EDP提供了前端应用开发时经常使用的 ...
- QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年
本文来自腾讯资深架构师杨志华的分享. 1.前言 也许没有多少人记得2004年发生的事情.但对于老腾讯来说,14年前的那个日子,2004年6月16日永远难以忘怀.这一天,QQ诞生5年后的腾讯在香港联交所 ...
- transition状态下Mecanim动画的跳转
来自: http://blog.csdn.net/o_oxo_o/article/details/21325901 Unity中Mecanim里面动画状态的变化,是通过设置参数(Parameter)或 ...
- ViewPager中Fragment无法显示的问题
问题描述: Actvitiy->Fragment1 ->Fragment2 Fragment1中有1个ViewPager,ViewPager里面有包括了2个Fragment. 当第一次执行 ...
- 【English】口头禅
1. Absolutely! 毫无疑问! 2. Adorable! 可爱极了! 3. Amazing! 太神奇了! 4. Anytime! 随时吩咐! 5. Almost! 差不多了! 6. Awfu ...
- android:id="@android:id/tabhost" 、android:id="@+id/llRoot" 、android:id="@id/llRoot" 之间的区别
由于快要放暑假了,所以最近这俩周把Android方面的知识复习一下,准备找个实习工作. 顺便把自己的总结更大家分享一下,共同进步,谢谢.... 一. android:id="@android ...
- Python课程之元组
元组(Tuple) 一.定义: 与列表(list)不同的是,元组不支持修改,但是若元组中的元素本身是可变对象,如列表,则可以修改.元素之间用逗号隔开,并且元素的类型可以任意. 二.操作: 1.创建:直 ...
- vmware安装问题:Microsoft Runtime DLL安装程序未能完成安装
下载vmware station 12 pro后安装,发现有以下问题: 解决方法: 在提示这个页面的时候,在运行中输入: %temp% 在打开来的文件窗口中,找到末尾为 ~setup的文件夹, ...
- redis清空部分key
redis-cli keys "test:job:*" redis-cli keys "test:job:*" |xargs redis-cli del
- Linux在本地使用yum安装软件
经常遇到有的linux服务器由于特殊原因,不能连接外网,但是经常需要安装一些软件,尤其是在编译一些包的时候经常由于没有安装一些依存包而报的各种各样的错误,当你找到依存的rpm包去安装的时候,又提示你有 ...