![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大话数据结构
iCode王者伟业
一个初出茅庐的愣头青,带着对未来的美好理想踏上了一条光荣的荆棘路。
展开
-
《大话数据结构》之单链表
#define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; typedef int ElemType; #define MAXSIZE 20 typedef struct { ElemType data [MAXSIZE]; int length; }SqList; typedef st原创 2015-09-24 16:25:00 · 563 阅读 · 1 评论 -
《大话数据结构》之快速排序
#include #include #include #define MAX_LEN 256 typedef 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 · 773 阅读 · 0 评论 -
《大话数据结构》之归并排序
#include #include #include #define MAX_LEN 256 typedef 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 · 553 阅读 · 0 评论 -
《大话数据结构》之分段查找
我所谓的分段查找包括:二分查找、插值查找、Fibonacci查找。 三者都是不断的缩小查找范围的查找方法,只是在每次缩小多少范围上有所区别。 二分查找: 最简单,每次一刀切,切一半,相对于其他两种方法显得很笼统,但是适配性不错,没有特殊限制。 int Binary_Search(int *a,int n,int key) { int low,high,mid; low = 1; hi原创 2015-12-07 15:26:08 · 430 阅读 · 0 评论 -
《大话数据结构》之二叉树的四种遍历
二叉树的遍历共分四种:前序遍历、中序遍历、后序遍历、层序遍历。 除层序遍历以外,所谓的前序、中序、后序,是按父节点所处位置的不同来划分的。父节点在两个子节点的中间,那就是中序,在两个子节点的前面那就是前序。 此外二叉树对子节点的遍历都是先左后右的。(如果说,男左女右的话,那么可以认为这样有点重男轻女,这个思想在国外也是有的(*^__^*) 嘻嘻……) 以上面这个二叉树为例。 前序遍原创 2015-12-01 11:13:34 · 775 阅读 · 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 · 681 阅读 · 0 评论 -
《大话数据结构》之图的深度优先遍历
深度优先遍历:以一个点开始,遍历他的每一个子树,类似于二叉树的前序遍历。利用递归实现。 图的邻接矩阵表示相关数据类型: /* 图的邻接矩阵表示 */ typedef char VertexType; typedef int EdgeType; #define MAXVEX 100 #define INFINITY 65535 typedef struct { VertexType vex原创 2015-11-26 14:09:32 · 515 阅读 · 0 评论 -
《大话数据结构》之Prim算法
Prim算法作用是构造连通网的最小代价生成树。 算法思想:以任意一个点开始,找权值最小的一条边,将此边和两个顶点加入最小生成树集合,以最小生成树的点集合中的每一个点为起点,找寻终点不在集合中的权值最小的边,并将结果加入集合,重复这个操作,直至所有的点都已经加入集合。 相关数据定义: /* 图的邻接矩阵表示 */ typedef char VertexType; typedef int Edg原创 2015-11-26 15:39:26 · 787 阅读 · 0 评论 -
《大话数据结构》之广度优先遍历
广度优先遍历:以点开始,逐层遍历,类似于二叉树的层序遍历。借助队列实现。 相关变量和数据结构定义: /* 图的邻接矩阵表示 */ typedef char VertexType; typedef int EdgeType; #define MAXVEX 100 #define INFINITY 65535 typedef struct { VertexType vexs[MAXVEX];原创 2015-11-26 14:33:55 · 598 阅读 · 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 · 853 阅读 · 1 评论 -
《大话数据结构》之静态链表
#define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; typedef int ElemType; #define MAXSIZE 1000 typedef struct { ElemType data; int cur; }Component; Component StaticLin原创 2015-09-24 16:34:16 · 724 阅读 · 0 评论 -
《大话数据结构》之堆排序
所谓的堆,实际是排序后的完全二叉树。 完成这个算法需要掌握排序后的完全二叉树的一些特性: 1、按层数,从上往下,依次为第一层,第二层,。。。,第n+1层。第n+1层的数据,一定大于(大顶堆)或小于(小顶堆)第n层的数据。 2、如果对一棵有n个节点的完全二叉树(其深度为不大于㏒2ⁿ的最大整数+1)的节点按层序编号(从1到不大于㏒2ⁿ的最大整数+1层,每层从左到右),对任一节点(1≤i≤n)有原创 2016-02-24 14:53:05 · 699 阅读 · 0 评论