ZCC的专栏

每天坚持看书和写作,相信每天的一小步,将会是人生的一大步! 形成、知化、流动、屏读、使用、共享、过滤、重混、互动、追踪、提问、开始!...

字符串

(1)字符与字符串    字符:一般被认为是字母、数字、符号和字。字母就是A、B、C、a、b、c等,而数字 1,2,3等,字可能是中文和英文字等。   字符串是有字符组成的。一般编程语言中用String类型来表示。在java 中String的实现通过char数组实现的。    (2)字符串的全排列...

2017-04-27 16:37:09

阅读数:237

评论数:0

数据结构与算法系列

最近抽空整理了"数据结构和算法"的相关文章。在整理过程中, 对于每种数据结构和算法分别给出"C"、"C++"和"Java"这三种语言的实现;实现语言虽不同,但原理如出一辙。因此,读者在了解和学习的过程中,择其一即可...

2017-04-27 14:43:49

阅读数:207

评论数:0

最短路径-Floyd算法

在最短路径的求解过程,无非中有两种可能:         (1)一种是能够直接到达,是最短路径;        (2)另一种是需要一些顶点才能到达,也是最短路径。        Floyd算法的伪代码如下:              Floyd算法的具体实现代码如下:         ...

2017-04-27 14:24:17

阅读数:582

评论数:0

最短路径(邻接表)-Dijkstra算法

最短路径(邻接表)-Dijkstra算法:生成的图采用邻接表的存储方式。        具体的实现代码如下: package com.threeTop.www; import java.util.Hashtable; import java.util.Stack; /** * 邻接表存储...

2017-04-26 17:04:40

阅读数:1545

评论数:0

最短路径(邻接矩阵)-Dijkstra算法

Dijkstra算法又叫作迪杰斯特拉算法,是利用"贪心法"(在对问题进行求解时,总是做出在当前看来最好的选择策略)设计算法的一个成功范例。         适用条件:带权无环和无负权值        举个栗子:

2017-04-26 16:16:07

阅读数:1738

评论数:0

图的邻接表存储下的广度优先遍历

图的邻接表存储下的广度优先遍历:需要借助队列实现.     图的邻接表存储下的广度优先遍历实现代码如下: /** * 邻接表广度优先遍历 * */ public void breadFirstTravel() { System.out.println("邻接表广...

2017-04-25 17:59:26

阅读数:528

评论数:0

图的邻接矩阵存储下的广度优先遍历

图的邻接矩阵存储下的广度优先遍历:就像树的按层次遍历,需要借助队列实现。     图的邻接矩阵存储下的广度优先遍历的实现代码如下: /*** * * 邻接矩阵广度优先遍历 * */ public void breadthFirstTravel() { System....

2017-04-25 16:44:08

阅读数:436

评论数:0

图的邻接表存储下的深度优先遍历

在图的邻接表的存储下进行的深度优先遍历:需要用到哈希表来辅助。    具体的实现代码如下: package com.threeTop.www; /** * 邻接表节点的定义 * @author wjgs * */ public class ListGraphNode { //增...

2017-04-25 15:35:48

阅读数:392

评论数:0

图的邻接矩阵存储下的深度优先遍历

深度优先遍历(DFS): 借助栈进行遍历,深度优先遍历的序列不是唯一的,邻接矩阵存储的时间复杂度为O(n*n),邻接表的存储的时间复杂度为O(n+e).       邻接矩阵的深度优先遍历的实现代码如下: package com.threeTop.www; import java.util.St...

2017-04-25 14:34:24

阅读数:866

评论数:0

图的邻接表存储

邻接表表示法和散列表类似,也是用一个数组,每个数组元素有个链表。其适用条件(边数不多):图的边数      图邻接表存储的实现代码如下: package com.threeTop.www; /** * 邻接表节点的定义 * @author wjgs * */ public class L...

2017-04-24 20:58:55

阅读数:389

评论数:0

图的邻接矩阵存储

一般的图会使用二元组的方式来描述,G=(V,E) ,其中V 叫作顶点集,E叫作边集。        图分为: (1)无向图 (2)有向图         图的表示和存储方式:  (1)邻接矩阵表示法 (2)邻接表表示法        邻接矩阵:存储为二维数组

2017-04-24 20:00:08

阅读数:285

评论数:0

关键路径C++实现

AOE网:在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网。AOE网中没有入边的顶点称为始点(或源点),没有出边的顶点称为终点(或汇点)。 AOE网的性质: ⑴ 只有在某顶点所代表的事件发生后,...

2017-04-24 15:14:53

阅读数:1095

评论数:0

红黑树

红黑树:本质是一棵二叉查找树,其插入、删除、查找操作的时间复杂度为O(logn).    红黑树的特征:    (1)每个节点都有颜色,要么是红色,要么是黑色;    (2)根节点是黑色的    (3)所有的叶节点都是黑色的,并且所有的叶节点都为空;    (4)如果一个节点的红色的,那...

2017-04-21 16:13:16

阅读数:401

评论数:0

堆排序

堆排序就是对数组进行初始化堆、依次插入元素和删除元素的操作。堆排序很适合对大量的数据进行排序,总的时间复杂度为O(nlogn).       堆排序的实现代码如下: /** * 堆排序的实现 * */ public void sort() { ...

2017-04-21 15:58:08

阅读数:169

评论数:0

堆是一种特殊的数据结构,是一种特殊形式的完全二叉树。       堆分为:(1)大顶堆,大顶堆中每个节点的值都不大于其父节点的值                   (2)小顶堆,小顶堆中每个节点的值都不小于其父节点的值       堆分为二项式堆、斐波那契堆、二叉堆(完全二叉堆)。       ...

2017-04-21 15:35:51

阅读数:187

评论数:0

哈夫曼树

哈夫曼树的构建步骤:            (1)将每个数据作为一棵只有树根的树,组成一个森林。          (2)将树的带权路径的长度进行从小到大排序。          (3)选择权值最小的两棵树进行合并,新生成的节点为两棵树的权值之和。          (4)重复第2,3步,...

2017-04-21 13:51:49

阅读数:375

评论数:0

B-树、B+树、B*树

一棵m阶B-树(B树)是一棵平衡的m-路查找树,它或者是一棵空树,或者满足如下条件:      (1)根节点至少有两个子节点(除非这棵树只有自己一个根节点)      (2)除根节点和叶子节点外,所有节点至少有m/2个子节点      (3)所有叶节点都在同一层。       如果m等于2,则它是...

2017-04-21 09:57:01

阅读数:269

评论数:0

平衡二叉树

平衡二叉树(AVL树):可以是一棵空树 (1)左右子树都是高度平衡的二叉树 (2)左右子树的高度之差的绝对值不大于1 平衡二叉树查找的平均情况和最坏情况都是O(logn),其插入和删除操作的时间复杂度也是O(logn),并且在插入、删除之后高度仍然保持相对平衡。

2017-04-21 09:08:39

阅读数:161

评论数:0

二叉查找树

二叉查找树或者是棵空树,或者满足下面的特性:       (1)如果它的左子树不为空,那么它的左子树上的任意节点的值都小于根节点的值。     (2)如果它的右子树不为空,那么它的右子树上任意节点的值都大于根节点的值。     (3)同样,它的左子树和右子树也都是二叉查找树。   ...

2017-04-20 23:05:51

阅读数:220

评论数:0

树的种类很多,有二叉树、平衡二叉树、B树、B+树、哈夫曼树、B-树,B*树、红黑树、trie树等。

2017-04-20 20:45:40

阅读数:154

评论数:0

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