自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 数据结构(C语言实现)-图(4)(有向无环图:拓扑排序与关键路径)

有向无环图就是没有环路的有向图,即以任意一个顶点为起点出发,走任意一条路径也不能回到起点。

2020-05-09 23:14:41 1061

原创 数据结构(C语言实现)-图(3)(无向图的最小生成树:普里姆算法和克鲁斯卡尔算法)

生成树:在一个连通图G中,取它全部顶点和一部分边构成该图的一个子图G’,若子图的所有边能够使全部顶点连通而不形成任何环,则称子图G’是图G的一个生成树。一个有n个顶点的生成树只有n-1条边。最小生成树:在一个连通网中,每条边的权值会有不同,各边权值之和最小的生成树成为最小生成树。构造最小生成树有多种算法,大多数算法利用了最小生成树的MST性质,即:...

2020-05-09 00:24:17 1877

原创 数据结构(C语言实现)-图(2)(图的遍历:深度优先、广度优先算法)

文章目录深度优先搜索(DFS)广度优先搜索(BFS)深度优先搜索(DFS)类似树的前序遍历,规定以某节点为根节点,从根结点出发,在没碰到重复顶点的情况下,遇到分叉路口就始终向右手边走,每路过一个顶点就做一个记号,没无路可走时就回退一步,走另一个分岔路口。接下来是DFS的递归实现,图的存储结构及创建使用前一篇写过的邻接表。结合上一篇文章的邻接表部分的代码可以实现编译运行。bool Visit...

2020-05-06 18:13:22 2409

原创 数据结构(C语言实现)-图(1)(图的存储结构、图的创建)

图的存储结构

2020-05-05 09:30:50 2900 1

原创 数据结构(C语言实现)-二叉树(3)(赫夫曼树/最优二叉树)

Huffman树是带权路径长度最短的树。路径长度是指两节点之间连线的个数;权值是属于叶子节点的一个数值。树的带权路径长度是所有叶子节点的权值与路径长度乘积之和。性质:Huffman树没有度为1的节点。有n个叶子的Huffman树共有2n-1个节点。可存储在大小为2n-1的数组中。构造Huffman树的算法叫Huffman算法。应用:Huffman编码远距离通信的主要手段是电报,这需要将文字...

2020-05-01 21:34:28 892 1

原创 数据结构(C语言实现)-二叉树(2)(线索二叉树)

1.二叉链表作为存储结构时,只能找到结点的左右孩子信息,无法得到某一结点在遍历输出时的前驱和后继信息。2.由下图可以看到,有n个结点的二叉链表必然存在n+1个指向NULL的空链域(图中三角形表示)3.我们发现,当二叉树以中序遍历输出时,刚好呈现出:每隔一个结点就会有一个存在两个空指针的结点(红色字母表示)。此时我们让存在空链域的结点,链域分别指向前驱和后继,便得到了中序线索树。在中序线索树上...

2020-04-21 21:24:13 264

原创 数据结构(C语言实现)-二叉树(1)(基本性质、链式结构、遍历二叉树)

二叉树是一种重要的树型存储结构,它的特点是每个结点至多只有两棵子树,并且二叉树的子树有左右之分,其次序不能任意颠倒。所有叶节点都在最后一层的二叉树称为满二叉树;叶子只出现在最下面两层,且最下层叶子靠左对齐,称为完全二叉树。二叉树具有以下五条基本性质:1.二叉树的第i层上至多有2i-1个结点。(归纳法可得)2.深度为k的二叉树最多有2k-1个结点。(2i-1对1~k层求和可得)3.若二叉树有...

2020-04-20 17:16:52 312

原创 数据结构(C语言实现)-串的模式匹配(KMP算法)

字符串是由多个字符组成的有限序列。记为s=‘a1 a2 a3 … an’,s为串的名,单引号引起来的是串的值。在串中取出一段连续的字符构成一个新的序列,这个子序列称为串的子串。找出子串在主串中的位置,称为模式匹配。将主串也即目标串记为S,用来匹配的子串也即模式串记为T,模式串在目标串中的位置记为pos。举例:目标串S=‘searching for a string’,模式串T=‘fo...

2020-04-14 16:09:14 3038

原创 数据结构(C语言实现)-线性表(4)(栈和队列)

目录栈队列栈栈是一种先入后出的线性表,数据只能在表尾进行插入和删除。栈的表尾称为栈顶,表头称为栈底。栈这种数据结构可以类比弹夹,子弹一个一个压入弹夹中,最后压入的子弹最先被发射出去,装弹和退弹都只能从弹夹顶部自上而下进行。栈是一种特殊的线性表,栈的操作也只是线性表操作的特例,故他们的实现具有相似性。这里只实现栈的顺序表示。#include"head.h"#define STACK_I...

2020-04-10 19:25:17 230

原创 数据结构(C语言实现)-线性表(3)(数组描述的线性链表)

用数组描述的线性链表又叫静态链表。静态链表中,元素存放在结构体数组里,每一个结构体数组的元素代表静态链表的一个“结点”,同时结构体中除了元素还有一个游标cur,指示下一个“结点”对应的的结构体数组下标。静态链表用结构体中的游标(cursor)代替了指针。这种存储结构像顺序表一样需要预分配一段较大的空间,但在插入删除元素时不需要移动元素,只需要修改游标,所以具有链表的优点。静态链表内部分为数据...

2020-04-09 16:52:41 224

原创 数据结构(C语言实现)-线性表(2)(线性表的链式表示)

目录线性表的链式表示线性链表循环链表双向链表线性表的链式表示线性链表下列代码中的头文件head.h写法在前一篇(不看也不影响啥)点击链接查看#include"head.h"#define Elemtype int// 线性表的单链表存储结构typedef struct LNode{ Elemtype data; // 节点中存储的数据 LNode *next; // 指向...

2020-04-08 15:55:51 158

原创 数据结构(C语言实现)-线性表(1)(线性表的顺序表示)

从去年十一月开始自学数据结构,学完快半年了,因为就只拿着书看不写代码效果不好,一个月前打算把数据结构所有的代码敲一遍,把代码传上来应该可以督促自己坚持下去吧。电脑里只装了VS2015,所以代码也用它编写。目录线性表的顺序表示线性表的顺序表示//头文件 head.h#ifndef _HEAD_H //防止头文件重复包含#define _HEAD_H#include<std...

2020-04-06 17:57:50 262

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除