
大话数据结构
iCode王者伟业
一个初出茅庐的愣头青,带着对未来的美好理想踏上了一条光荣的荆棘路。
展开
-
《大话数据结构》之单链表
#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;typedef int ElemType;#define MAXSIZE 20typedef struct { ElemType data [MAXSIZE]; int length;}SqList;typedef st原创 2015-09-24 16:25:00 · 617 阅读 · 1 评论 -
《大话数据结构》之快速排序
#include #include #include #define MAX_LEN 256typedef struct{ int iInput[MAX_LEN]; int iLength;}SqArr;void swap(SqArr *pToSwap,int iFirst,int iSecond){ if (iFirst != iSecond) { pToSwap原创 2016-02-27 02:32:45 · 812 阅读 · 0 评论 -
《大话数据结构》之归并排序
#include #include #include #define MAX_LEN 256typedef struct{ int iInput[MAX_LEN]; int iLength;}SqArr;int Output(SqArr *pSqToPrint){ int iLoop; for(iLoop=1;iLoopiLength;iLoop++) { pri原创 2016-02-26 15:06:26 · 597 阅读 · 0 评论 -
《大话数据结构》之分段查找
我所谓的分段查找包括:二分查找、插值查找、Fibonacci查找。三者都是不断的缩小查找范围的查找方法,只是在每次缩小多少范围上有所区别。二分查找:最简单,每次一刀切,切一半,相对于其他两种方法显得很笼统,但是适配性不错,没有特殊限制。int Binary_Search(int *a,int n,int key){ int low,high,mid; low = 1; hi原创 2015-12-07 15:26:08 · 485 阅读 · 0 评论 -
《大话数据结构》之二叉树的四种遍历
二叉树的遍历共分四种:前序遍历、中序遍历、后序遍历、层序遍历。除层序遍历以外,所谓的前序、中序、后序,是按父节点所处位置的不同来划分的。父节点在两个子节点的中间,那就是中序,在两个子节点的前面那就是前序。此外二叉树对子节点的遍历都是先左后右的。(如果说,男左女右的话,那么可以认为这样有点重男轻女,这个思想在国外也是有的(*^__^*) 嘻嘻……)以上面这个二叉树为例。前序遍原创 2015-12-01 11:13:34 · 829 阅读 · 0 评论 -
《大话数据结构》之Kruskal算法
需要先对边按权重排序,或者每次要查找最小权重的边。同时用类似于数组链表的方式,记录每个顶点之间的连接关系。因为需要避免形成环路。typedef struct { int begin; int end; int weight;}Edge;int Find(int *parent,int f){ while(parent[f]>0) { f = parent[f]; }原创 2015-11-27 15:29:52 · 717 阅读 · 0 评论 -
《大话数据结构》之图的深度优先遍历
深度优先遍历:以一个点开始,遍历他的每一个子树,类似于二叉树的前序遍历。利用递归实现。图的邻接矩阵表示相关数据类型:/*图的邻接矩阵表示*/typedef char VertexType;typedef int EdgeType;#define MAXVEX 100#define INFINITY 65535typedef struct { VertexType vex原创 2015-11-26 14:09:32 · 571 阅读 · 0 评论 -
《大话数据结构》之Prim算法
Prim算法作用是构造连通网的最小代价生成树。算法思想:以任意一个点开始,找权值最小的一条边,将此边和两个顶点加入最小生成树集合,以最小生成树的点集合中的每一个点为起点,找寻终点不在集合中的权值最小的边,并将结果加入集合,重复这个操作,直至所有的点都已经加入集合。相关数据定义:/*图的邻接矩阵表示*/typedef char VertexType;typedef int Edg原创 2015-11-26 15:39:26 · 833 阅读 · 0 评论 -
《大话数据结构》之广度优先遍历
广度优先遍历:以点开始,逐层遍历,类似于二叉树的层序遍历。借助队列实现。相关变量和数据结构定义:/*图的邻接矩阵表示*/typedef char VertexType;typedef int EdgeType;#define MAXVEX 100#define INFINITY 65535typedef struct { VertexType vexs[MAXVEX];原创 2015-11-26 14:33:55 · 640 阅读 · 0 评论 -
《大话数据结构》之关键路径算法
关键路径算法是在AOE网中找出完成所有活动耗时最长的路径的方法。程序中涉及的结构:typedef char VertexType;typedef int EdgeType;//邻接节点结构typedef struct EdgeNode{ int adjvex; EdgeType weight; struct EdgeNode *next;}EdgeNode;//顶点节原创 2015-11-25 14:52:22 · 946 阅读 · 1 评论 -
《大话数据结构》之静态链表
#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;typedef int ElemType;#define MAXSIZE 1000typedef struct{ ElemType data; int cur;}Component;Component StaticLin原创 2015-09-24 16:34:16 · 775 阅读 · 0 评论 -
《大话数据结构》之堆排序
所谓的堆,实际是排序后的完全二叉树。完成这个算法需要掌握排序后的完全二叉树的一些特性:1、按层数,从上往下,依次为第一层,第二层,。。。,第n+1层。第n+1层的数据,一定大于(大顶堆)或小于(小顶堆)第n层的数据。2、如果对一棵有n个节点的完全二叉树(其深度为不大于㏒2ⁿ的最大整数+1)的节点按层序编号(从1到不大于㏒2ⁿ的最大整数+1层,每层从左到右),对任一节点(1≤i≤n)有原创 2016-02-24 14:53:05 · 745 阅读 · 0 评论