数据结构
数据结构C语言版本
~有梦想的人
生活不在别处,脚下遍是前方。
展开
-
拓扑排序~C语言完整代码
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。拿个例子来说,...原创 2019-05-01 22:15:09 · 11871 阅读 · 7 评论 -
数据结构之克鲁斯卡尔算法~C语言完整代码
今天我们用克鲁斯卡尔算法来实现上图的最小生成树先定义边集数组typedef struct Edge //定义边集数组元素,v1,v2存顶点,weight存权重。{ int v1; int v2; int weight;}Edge;typedef struct ALGraph //定义图的结构,peak存顶点的数量,edge存边的数量{ ...原创 2019-02-14 15:07:22 · 8073 阅读 · 2 评论 -
C语言实现邻接表的普里姆算法(完整代码)
今天我用C语言来实现下面的图的最小生成树:它的最小生成树为:最小生成树的思路是:先从一个顶点出发,把它加入集合V中,从与它相连接的边中找到权值最小的边,与权值最小的边的另一个顶点作为起始点,加入集合V中,再从集合V中顶点中找出未遍历的权值最小的边,找出与它的相连的另一顶点再作为起始点,以此类推下去,最小生成树就形成了。首先我们先创建邻接表预定义#define MaxVertexNum...原创 2019-02-13 16:09:58 · 6898 阅读 · 6 评论 -
C语言实现图的十字链表(完整代码)
今天我们用c语言将下面的图用代码表示出来。像下图那样先定义一些结构体typedef struct Bow //定义弧{ char head,tail; struct Bow *hlink,*tlink;}Bow;typedef struct FirstNode //定义头结点{ char data; Bow *firIn; Bow *firOut;}Fir...原创 2019-02-10 19:22:01 · 4168 阅读 · 0 评论 -
C语言实现栈的操作
首先先定义一个栈#define SIZE 20#define ADD_SIZE 10typedef char ElemType;typedef struct stack{ ElemType *top; //定义一个头指针 ElemType *base; //定义一个尾指针 int stack_size; //栈的长度,初始化为10};初始...原创 2019-02-09 21:31:22 · 398 阅读 · 0 评论