
数据结构
SmilngCobra
To be an architect
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树(一)---------二叉树基础知识
1. 二叉树是一种简单的非线性数据结构,每个根节点最多包含有不超过两个根节点(左孩子,右孩子)。 2. 结点的度:一个结点所拥有的子节点的数目称为该结点的度(目)。 3. 树的深度: 树的深度是指以根为第一层,直到树的最底层子树为止,所有的层次数。根为第一层,根的孩子为第二层,依次累计.树中结点的最大层次称为树的深度或高度。 4. 二叉树的一些基本性质:(1) 树的第i层中最多有2i-1个结点...原创 2018-04-23 10:19:21 · 396 阅读 · 0 评论 -
二叉树(二)-----基本代码实现
现在我想用代码来实现关于二叉树的一些基础功能。由于二叉树的功能比较多,所以我想多分几篇博客来叙述二叉树的功能。 根据二叉树的结构和性质我们可以发现,二叉树的每个子节点都是其子节点的根节点,所以关于二叉树的很多功能实现都可以通过递归的方式来实现。关于我刚刚开始学习二叉树时,递归的思想让我十分头疼。递归的特点就是虽然代码看起来很简单,但是分析其具体内部实现过程却是十分复杂的。在我学习c+...原创 2018-04-23 11:27:58 · 560 阅读 · 0 评论 -
二叉树(三)——二叉树的遍历
今天我来说一说二叉树的几种遍历。在我看来二叉树的遍历主要有四种:(1)层次遍历(2)前序遍历(3)中序遍历(4)后序遍历下面我将具体地介绍一下这几种遍历方式...原创 2018-05-10 23:54:41 · 202 阅读 · 0 评论 -
二叉树(四)---查找二叉树
上次我说了如何去遍历一棵二叉树,今天我来说一说查找二叉树是怎样实现的。首先我来介绍一下查找二叉树是怎样生成的。这个是我为我的二叉树设置的一些基础的组成数据结构private TreeNode root; int count = 1; public SearchBinaryTree(){ root=null; }我们可以设置一个数组,里面的数字可以是乱序的。那么我们的查找二叉树就是将他们进...原创 2018-05-11 23:28:38 · 252 阅读 · 0 评论 -
二叉树(五)——哈夫曼树
今天我来说一说霍夫曼树的构造。什么是霍夫曼树,之前我们发现,二叉树的每个结点的重要程度(以下称为权值)都是相同的。但是如果每个结点的重要程度不相同,即他们的权值不同。我们就需要构造一个新的二叉树,按照权值不同,权值高的放在二叉树的顶端,权值低的放在二叉树的底端。从二叉树的构造原理来看,这样做可以有效地减少一组数据索引时间。首先我来说一下我的哈夫曼树的结点的数据结构class TreeNode{ ...原创 2018-05-12 12:40:29 · 339 阅读 · 0 评论 -
图(一)-------基础知识
刚刚结束了二叉树的学习。最近一段时间在研究关于图的一些知识。并用java代码对这些一本基本操作进行了实现。图和二叉树一样都是非线性的数据结构,但是我们内存空间的地址是连续的,所以对于非线性问题的分析我们需要将他们转化为线性问题进行分析。如图所示,其中所有的V1,V2....通常都是顶点。例如G1图中,V4指向V1表示从V4到V1的一条弧。称V4为弧尾(Tail),V1为弧头(Head)在G2图中V...原创 2018-05-16 20:26:59 · 427 阅读 · 0 评论 -
图(二)---------图的深度优先遍历算法和广度优先遍历算法
今天我来介绍一些图的深度优先遍历算法和广度优先遍历算法。在展示我的代码之前我想先对这两种算法进行一些讲述首先是深度优先遍历算法。大家来看这个图,深度优先遍历就是以一个顶点为起点,找到它的第一个邻接顶点并将这个顶点设置为已经访问过的,然后递归之前的方法,直到所有的顶点的第一个邻接点都被访问过了。然后向上回溯,查找其他的邻接顶点重复之前的方法查找其他的邻接顶点的第一个邻接顶点是否被访问。以我这个图为例...原创 2018-05-16 21:13:59 · 1270 阅读 · 0 评论