
数据结构,学习笔记
UTD
这个作者很懒,什么都没留下…
展开
-
数据结构6-排序算法(直接插入排序、希尔排序、快速排序、归并排序和堆排序)
所有排序中,需要排序的数组array的第0位不存放有效的数字,而是作为哨兵存在。1.直接插入排序 直接插入排序的基本操作是将一个记录插入到已排好序的表中,从而得到一个新的、记录增1的有序表。一个无序的数字array(同时可以把它当做一个长度为1的有序表),从1以后的每个位置都希望找到自己合适的位置插入,第i位(i从2开始)数字要到自己位置插入,那么就需要从前i-1位开始依原创 2017-10-07 13:46:04 · 1134 阅读 · 0 评论 -
数据结构1-二叉树的遍历
遍历如图二叉树:1.先序遍历(1)先访问根结点(2)再遍历左子树(2)最后遍历右子树private static void PreOrder(BiTree root, Action visit){ if (root == null) return; visit(root); PreOrder(LeftChild(root), visit);原创 2017-10-04 12:35:48 · 192 阅读 · 0 评论 -
数据结构2-二叉树的最大深度
获取到二叉树的最大深度主要是使用递归的方式来完成,思路分为下面三步:(1)判断传来的结点是否为空;(2)递归调用来累加该结点的左右子树的深度;(3)返回左右子树深度更大的值。private static int MaxDepth(BiTree root){ if (root == null) return 0; int left = 1; int righ原创 2017-10-04 13:43:10 · 172 阅读 · 0 评论 -
数据结构3-拓扑排序
1.拓扑排序的理解 拓扑排序是用于有向、无环图里,将优先的节点先输出的一种排序方式。有向是指节点与节点之间有一个优先关系,例如想烧一壶水,那么必须先用水壶去接水,再用水壶去烧水,其中接水就是烧水的优先动作,想烧水就必须先接水。无环是指一系列的动作中必须是有一个入口和一个出口的,举一个有环的例子,先有鸡还是先有蛋,鸡要蛋孵,蛋要鸡下(不从科学角度考虑,例子的设定就是这样),这个例子原创 2017-10-05 14:14:08 · 257 阅读 · 0 评论 -
数据结构4-深度优先搜索和广度优先搜索
1.深度优先搜索 深度优先搜索类似于树的先序遍历,是树的先序遍历的拓展。从起始点开始沿着一个能访问的相邻点一直搜索下去,直到这条路线的尽头,再返回到上一个分叉的顶点搜索另一条路线。这显然一个递归算法,我们可以使用递归或者栈来解决。2.广度优先搜索 广度优先搜索是从初始顶点开始搜索所有未访问的相邻顶点,然后分别从这些相邻点出发依次访问它们的相邻点。一般原创 2017-10-05 16:00:12 · 480 阅读 · 0 评论 -
数据结构5-最小生成树Prim算法
Prim算法是建立在贪心算法的基础上的算法,主要思想就是每次都去找已走的顶点连向未走的顶点中最短的路径。算法思路:1.将每条边的出发点存放在v中,每条边的目的点存放在u中,并将已访问过的点存放在t中;2.每次遍历t,找出t中的点到t之外的点的最短边,若能找到就执行1,否则就已生成最小树。/// /// Prim最小生成树算法/// /// 临接矩阵/// 起始点s原创 2017-10-06 13:21:13 · 404 阅读 · 0 评论