自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 数据结构 - 红黑树(Red Black Tree)删除详解与实现(Java)

  本篇要讲的就是红黑树的删除操作      红黑树插入操作请参考数据结构 - 红黑树(Red Black Tree)插入详解与实现(Java)  红黑树的删除是红黑树操作中比较麻烦且比较有意思的一部分。  在此之前,重申一遍红黑树的五个定义:    1. 红黑树的节点不是黑色的就是红色的    2. 红黑树的根节点一定是黑色的    3. 红黑树的所有叶...

2018-09-18 17:39:00 279

转载 数据结构 - 红黑树(Red Black Tree)插入详解与实现(Java)

  最终还是决定把红黑树的篇章一分为二,插入操作一篇,删除操作一篇,因为合在一起写篇幅实在太长了,写起来都觉得累,何况是阅读并理解的读者。      红黑树删除操作请参考数据结构 - 红黑树(Red Black Tree)删除详解与实现(Java)  现在网络上最不缺的就是对某个知识点的讲解博文,各种花样标题百出,更有类似“一文讲懂xxx”,“史上最简单的xxx讲解”,“xxx...

2018-09-18 17:38:00 188

转载 数据结构 - 从二叉搜索树说到AVL树(二)之AVL树的操作与详解(Java)

  写在前:我在尽可能的写一篇能比较清晰且完整的讲完整个AVL树操作的文章,所有文字以及例图都是我一笔一划写出来的。由于AVL树的操作包含了查找,删除,插入操作,除了一些规律之外,一些处理细节,比如旋转操作,失衡时候的调整步骤等,除了死记硬背没有别的办法,所以我建议读者可以拿起笔,集中精神,跟着思路一口气看完,因为一些操作麻烦,走马观花的阅读势必会多花不必要的精力,不如一次性掌握起来,这...

2018-09-10 12:15:00 173

转载 数据结构 - 从二叉搜索树说到AVL树(一)之二叉搜索树的操作与详解(Java)

  二叉搜索树(Binary Search Tree),简称BST,顾名思义,一颗可以用于搜索的二叉树。BST在数据结构中占有很重要的地位,一些高级树结构都是其的变种,例如AVL树、红黑树等,因此理解BST对于后续树结构的学习有很好的作用。同时利用BST可以进行排序,称为二叉排序,也是很重要的一种思想。  二叉树的性质:任意一个节点的所有左子树元素都比该元素值要小,而所有右子树元素都...

2018-09-10 12:10:00 193

转载 数据结构 - 单源最短路径之迪杰斯特拉(Dijkstra)算法详解(Java)

  给出一个图,求某个端点(goal)到其余端点或者某个端点的最短路径,最容易想到的求法是利用DFS,假设求起点到某个端点走过的平均路径为n条,每个端点的平均邻接端点为m,那求出这个最短路径使用DFS算法的时间复杂度为O(mn), 这显然是十分不理想的。  于是提出迪杰斯特拉(Dijkstra)算法,为解决有向图中某个端点到其余端点的最短路径, 在端点数为m,时间复杂度为O(m2)的...

2018-08-25 15:44:00 1583

转载 字符编码与解码详解

  先简单介绍一下编码的情况,我们都知道机器上显示的字符最终存在计算机内存里都是以二进制码的形式存在的。  最开始的计算机字符只能用ASCII编码的方式去存储,而一个ASCII码占用一个字节,也就是说ASCII编码最多只能编码256个字符(键盘上所有的半角字符)。 但为了表示别的国家文字,就必须对原有的字符编码方式进行扩充。而对于中文来说,主要有两种编码方式,分别是gb2312和gb...

2018-04-02 09:57:00 381

转载 【Java反射机制】用反射改进简单工厂模式设计

  如果做开发的工作,工厂设计模式大概都已经深入人心了,比较常见的例子就是在代码中实现数据库操作类,考虑到后期可能会有数据库类型变换或者迁移,一般都会对一个数据库的操作类抽象出来一个接口,然后用工厂去获取实际数据库操作类实例。  下面举一个最简单的工厂模式例子:interface IAnimal { void talk();}class Cat impl...

2018-03-30 10:45:00 284

转载 数据结构 - 赫夫曼树详解与模拟压缩(C++)

赫夫曼(Huffman)树,由发明它的人物命名,又称最优树,是一类带权路径最短的二叉树,主要用于数据压缩传输。赫夫曼树的构造过程相对比较简单,要理解赫夫曼树,要先了解赫夫曼编码。对一组出现频率不同的字符进行01编码,如果设计等长的编码方法,不会出现混淆的方法,根据规定长度的编码进行翻译,有且只有一个字符与之对应。比如设计两位编码的方法,A,B,C,D字符可以用00-11来表示,接...

2017-04-22 01:04:00 114

转载 根据 中序遍历 和 后序遍历构造树(Presentation)(C++)

  好不容易又到周五了,周末终于可以休息休息了。写这一篇随笔只是心血来潮,下午问了一位朋友PAT考的如何,顺便看一下他考的试题,里面有最后一道题,是关于给出中序遍历和后序遍历然后求一个层次遍历。等等,我找一下链接出来......  1127. ZigZagging on a Tree (30):https://www.patest.cn/contests/pat-a-practise...

2017-03-10 23:43:00 322

转载 【动态规划】记忆搜索(C++)

  前几天还在踟蹰我应该注重培养做项目的能力还是修炼算法以及数据结构,然后发现这个场景有点似曾相识。曾几何时的一个月里,我有三件比较重要的事情要解决,在那个月刚开始的时候我一直在想我应该从那件事情开始着手,甚至在脑海里给这三件事情的重要性排个序,思绪争执不下,烦躁之极,不如玩玩游戏散散心吧,或许等下就知道怎么做了......结果一个月下来,没有一件事的结果能使我十分满意。做项目的编程能力...

2017-03-10 14:03:00 118

转载 【动态规划】滚动数组的求解(C++)

  虽然接触动态规划算法已经有一段时间,给一个01背包问题,能够做到一个表格简单粗暴下去,然后求得结果,但心里总觉得对这个算法理解十分不到位,抱着对算法的热爱,网上很多大牛的算法思维实在让我佩服的五体投地。在此讲一讲动态规划中滚动数组的求解方法,算是对这个知识点做一个记录,也希望有写的不妥的地方,大家能不吝赐教。  首先,我们先看看“滚动数组”的例题,大家可以参考http://www...

2017-02-24 11:14:00 218

转载 .Net的垃圾回收机制(GC)之拙见——托管类型的垃圾回收

各种语言的垃圾回收在IT界噪的沸沸扬扬,有极大的优化同时也有瓶颈。而在.Net中的垃圾回收机制又是怎样的呢?众所知周,.Net中的垃圾回收机制是由.Net Framework托管的,带给开发者最大的好处就是省去了手动进行垃圾回收的麻烦。在虚拟内存当中,有个区域称为“栈”,这个数据结构完全符合“先进后出(FILO)”的特性。在C#中,有个名词叫作用域,作用域表示了一个变量的...

2017-02-19 01:10:00 90

转载 C#编程语言之委托与事件(二)—— C#事件

  前面已经大致讲述了C#委托的一些基础知识点,本文接下来的内容是C#中的事件(Event),在此我提个建议,如果是刚接触C#的委托类型的朋友可以先看到这里,等熟悉了委托的使用之后(大约1-2天)再来了解C#中事件的使用,以免看了以下内容发生思维紊乱的现象。之所以这么说并没有些许自大之意,而相反的是恰恰是认为自己的文章写得结构混乱,不足以明理,如果同时看了委托(delegate)和事件(...

2016-08-31 23:05:00 144

转载 C#编程语言之委托与事件(一)—— C/C++函数指针和C#委托初步

  相信正在学习C#的人都有学习过C或C++的经验,本文要讲的第一个要点是C#中的委托(delegate,有些资料也叫代表)。什么是委托,很多人都能自然而然地想到C/C++中的函数指针,事实上很多书和资料都以此来引出C#中委托的概念,在此我建议如果没有接触过C/C++的同学可以先了解一下相关的知识再来继续C#的学习,毕竟作为编程语言的基础,语言都是招式,思维想法才是内功。有了扎实的基础,...

2016-08-31 23:05:00 153

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除