数据结构与算法
文章平均质量分 61
初心勿忘
人应自制,否则与禽兽无异!
展开
-
满二叉树和完全二叉树
二叉树分类很多,其中满二叉树和完全二叉树比较特殊,因为这两种二叉说效率很高,这里记录几条相关性质。 首先是满二叉树:从形象上来说满二叉树是一个绝对的三角形,也就是说它的最后一层全部是叶子节点,其余各层全部是非叶子节点,如果用数学公式表示那么其节点数n=2^k-1其中k表示深度,也就是层数。也就是说满二叉树的节点数是一系列固定的数,比如说,1,3,7,15...如果节点数不是这个序列中的数,转载 2016-07-10 10:26:50 · 775 阅读 · 0 评论 -
最小生成树Prim算法
MST(Minimum Spanning Tree,最小生成树)问题有两种通用的解法,Prim算法就是其中之一,它是从点的方面考虑构建一颗MST,大致思想是:设图G顶点集合为V,U为最小生成树的顶点的集合。建立两个数组:lowcost[i]和mst[i],前者表示以i为终点的边的最小权值;后者对应lowcost[i]的起点。若lowcost[i]=0,则表示顶点i已经加入到U中;若lowcost[原创 2016-07-13 19:46:32 · 429 阅读 · 0 评论 -
数据结构---图---邻接表
关于图的存储结构,可以参考:http://blog.csdn.net/gongda2014306/article/details/51891637下面是邻接表的实现方式://图的邻接表存储C语言实现//2016.7.12//author:xukeyi#include #include /* run this program using the console pauser o原创 2016-07-12 23:21:12 · 1810 阅读 · 0 评论 -
AOE与最长路径
AOE ExampleCS 402 Examples Here is the AOE example graph discussed in lecture:The values are computed as follows:Assign the start node an early time of 0.Process the nodes in a t转载 2016-07-14 11:14:55 · 586 阅读 · 0 评论 -
哈希表
一、什么是哈希表?首先,http://www.cnblogs.com/jillzhang/archive/2006/11/02/547679.html提供了一个很好的例子来理解哈希表。其实哈希表很简单,步骤如下:第一步:将要存储的对象,即关键字,通过哈希函数,转化成哈希值(哈希值就代表该关键字在哈希表中的下标或地址);第二步:将该关键字存入该哈希值所对应的存储单元中。二原创 2016-07-14 17:01:42 · 452 阅读 · 0 评论 -
插入排序
一、什么是插入排序?每次讲一个待排序的元素,按其关键字的大小插入到已排好序的表中,直到全部元素插入完成为止。这里默认为增序。二、常见的插入排序(1)、直接插入排序设数组为a[0…n],步骤如下:1. 将原序列分成有序区和无序区,其中a[0…i-1]为有序区,a[i…n] 为无序区(i从1开始);2. 从无序区中取出第一个元素,即a[i],在有序区序列中从后向前扫描;原创 2016-07-15 16:08:50 · 314 阅读 · 0 评论 -
栈的C语言实现(数组)
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */#define EmptyStack -1typedef struct _STACK_ARRAY{ int size; int capacity;原创 2016-07-07 14:06:15 · 1663 阅读 · 0 评论 -
队列的C语言实现(循环数组结构)
//队列的循环数组实现 #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */typedef int ElementType;typedef struct _QUEUE_ARRAY_{ int fro原创 2016-07-06 22:46:42 · 3478 阅读 · 0 评论 -
广度优先遍历(Breadth-FirstTraversal)
1、广度优先遍历的递归定义 设图G的初态是所有顶点均未访问过。在G中任选一顶点v为源点,则广度优先遍历可以定义为:首先访问出发点v,接着依次访问v的所有邻接点w1,w2,…,wt,然后再依次访问与wl,w2,…,wt邻接的所有未曾访问过的顶点。依此类推,直至图中所有和源点v有路径相通的顶点都已访问到为止。此时从v开始的搜索过程结束。 若G是连通图,则遍历完成;否则,在图C中转载 2016-07-13 14:27:43 · 1611 阅读 · 0 评论 -
图--深度优先遍历
图的遍历概念1、图的遍历 和树的遍历类似,图的遍历也是从某个顶点出发,沿着某条搜索路径对图中每个顶点各做一次且仅做一次访问。它是许多图的算法的基础。 深度优先遍历和广度优先遍历是最为重要的两种遍历图的方法。它们对无向图和有向图均适用。 注意: 以下假定遍历过程中访问顶点的操作是简单地输出顶点。2、布尔向量visited[0..n-1]的设置转载 2016-07-13 14:26:23 · 889 阅读 · 0 评论 -
数据结构---图的存储结构
1、邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。代码如下:#define MAX 10typedef struct _Vertex{ int num;//顶点编号 int info;//顶点的其他附加信息,可以不要}Vertex;//图的结构信息typedef struct _G原创 2016-07-12 19:27:40 · 1881 阅读 · 0 评论 -
单链表的C语言实现
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */typedef int DATATYPE;//链表结点的数据结构定义 typedef struct node{ DATATYPE data; s原创 2016-07-06 22:59:06 · 509 阅读 · 0 评论 -
双链表的C语言实现
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop *///双链表的基本结构 typedef struct _DOUBLE_LINK_NODE{ int data; struct _DOUBLE_LINK原创 2016-07-06 19:26:00 · 1980 阅读 · 0 评论 -
循环链表的C语言实现
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop *///双链表结点结构 typedef struct _CYCLE_DOUBLE_LINK_NODE{ int data; struct _CYCLE_原创 2016-07-06 19:24:48 · 508 阅读 · 0 评论 -
队列的C语言实现(单链表结构)
//队列的单链表实现,创建、插入、删除 、打印 #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */typedef struct _QUEUE_NODE_{ int data; struct _QUE原创 2016-07-06 22:48:12 · 575 阅读 · 0 评论 -
栈的C语言实现(链表)
//栈的链表实现,包括空栈、出栈、入栈、打印栈中元素 #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */typedef struct _NODE_{ struct _NODE_ *next; in原创 2016-07-07 10:52:25 · 998 阅读 · 0 评论 -
二叉查找树的C语言实现
下面代码是自己在学习二叉查找树时写的,纯属为了记录自己的学习过程。//C语言实现二叉查找树 #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */typedef struct _SearchTreeN原创 2016-07-11 15:02:11 · 1286 阅读 · 0 评论 -
AVL树的旋转操作 图解 最详细
原文:http://blog.csdn.net/collonn/article/details/20128205AVL树的旋转操作 图解 最详细各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。我们称呼左旋为:逆进针旋转。我们称呼右旋为:顺进针旋转。老规矩,直接上图。如果再看不懂AVL树的旋转,我就无能为力了。。。如果图中有错误转载 2016-07-12 09:43:31 · 310 阅读 · 0 评论 -
数据结构---图---邻接矩阵
利用邻接矩阵的存储结构。代码如下://无向图的C语言实现(不含权值)#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */#define MAXV 10//图的结构 typedef stru原创 2016-07-12 19:32:24 · 664 阅读 · 0 评论 -
java实现二叉树的构建以及3种遍历方法
原文链接:http://ocaicai.iteye.com/blog/1047397目录: 1.把一个数组的值赋值给一颗二叉树 2.具体代码 1.树的构建方法 2.具体代码 Java代码 package tree; import java.util.LinkedList; import转载 2016-09-10 22:22:38 · 420 阅读 · 0 评论