![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
emmm苏星河
这个作者很懒,什么都没留下…
展开
-
算法与数据结构(c语言)——线性单链表基本操作
#include <stdio.h>#include <stdlib.h>typedef int Element;typedef char(*Status)[10];#define ERROR "error"#define OK "ok";// 定义一个线性单链表结构typedef struct Node{ Element data; ...原创 2018-10-14 17:05:26 · 4178 阅读 · 2 评论 -
算法与数据结构(c语言)——图(Figure,四):最小生成树
最小生成树普里姆(prim)算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小。一个百科>>>描述:从单一顶点开始,普里姆算法按照以下步骤逐步扩大树中所含顶点的数目,直到遍及连通图的所有顶点。输入:一个加权连通图,其中顶点集合为V,边集合为E; 初始化:Vnew= {x},其...原创 2019-06-11 17:54:43 · 497 阅读 · 0 评论 -
简单通俗易懂学算法——十大常用排序算法(插入排序)
插入排序上个一定能懂的代码先:// 进行简单的元素位置交换public static void swap(int arr[], int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;}// 插入排序操作public static void insertShort(int arr...原创 2019-06-11 17:29:04 · 315 阅读 · 0 评论 -
算法与数据结构(c语言)——图(Figure,三):遍历操作
图的遍历从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次,这一过程便叫做图的遍历。深度优先遍历也有称深度优先搜索(Depth First Search),简称DFS。有点像是树的先序遍历。无向图的邻接矩阵存储方式深度优先遍历算法的代码实现:// 访问标志数组bool visited[MAXVN];// 邻接矩阵深度优先递归算法void DFS(MGr...原创 2019-03-06 21:13:40 · 379 阅读 · 0 评论 -
算法与数据结构(c语言)——图(Figure,二):存储结构
图的存储结构: 邻接矩阵存储 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。无向图从上面可以看出,无向图的边数组是一个对称矩阵。所谓对称矩阵就是n阶矩阵的元满足aij= aji。即从矩阵的左上角到右下角的主对角线为轴,右上角的元和左下角相对应的元全都是相等的。从这个矩阵中,很容易知道图中的信息...原创 2019-03-06 21:14:02 · 467 阅读 · 3 评论 -
算法与数据结构(c语言)——图(Figure,一)
首先是基本的一些概念,上个图先:图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V(vertex)是图G中顶点的集合,E(edge)是图G中边的集合。有向边:若从顶点vi到vj的边有方向,则称这条边为有向边。也称为弧(Arc)。用有序偶<vi,vj>来表示,vi称为弧尾(Tail),vj称为弧头(He...原创 2019-02-24 14:03:36 · 677 阅读 · 0 评论 -
算法与数据结构(c语言)——赫夫曼树&赫夫曼编码
赫夫曼树:最优二叉树,带权路径长度最短的树,也称为赫夫曼树。给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为赫夫曼树(Huffman Tree)。赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。先说几个基本的名词:路径:从树的一个结点到另一个结点之间的分支构成两个结点之间的路径 路径长度:路径上的分支数目 树的路...原创 2019-02-22 14:44:13 · 1076 阅读 · 0 评论 -
算法与数据结构(c语言)——树的存储结构
先分别说下三种不同的表示法:双亲表示法、孩子表示法、孩子兄弟表示法首先得有一颗树。翠花,上树!我是一颗树双亲表示法:每个节点除了数据域外还有一个parent指针域来记录双亲节点。树的节点结构那么存储起来就是这样的双亲节点结构定义代码#define MAX_TREE_SIZE 100typedef char ElementType;// 树的节点...2019-01-27 16:18:57 · 1637 阅读 · 1 评论 -
算法与数据结构(c语言)——BinaryTree(三)
线索二叉树:二叉树添加了直接指向节点的前驱和后继的指针的二叉树称为线索二叉树。线索化的实质其实就是将二叉链表中的空指针改为指向其前驱或后继的线索。也就是在遍历的过程中修改空的指针(非线性结构的线性化操作)。 ...原创 2019-01-26 20:32:00 · 289 阅读 · 0 评论 -
算法与数据结构(c语言)——串
串的一些个存储结构:顺序存储结构的串#define MAXSIZE 255// 0下标位置的长度存放这个串的长度typedef unsigned char String[MAXSIZE+1];链式存储的串:#define MAXSIZE 1024typedef struct{ char *chars; //定义一个串长度 int length;}S...原创 2018-11-03 13:04:28 · 597 阅读 · 0 评论 -
算法与数据结构(c语言)——链栈存储结构及实现
链栈:就是一种特殊的单链表,FILO(先进后出)通常对于链栈来说:1.是不需要头节点的。2.基本不存在满栈的情况,除非内存已没有可用的空间。 不多bibi你们都懂哈,直接上代码: 链栈结构:typedef struct StockNode{ // 数据域 Element data; // 下个节点的指针域 struct StockNo...原创 2018-10-17 10:38:49 · 699 阅读 · 0 评论 -
算法与数据结构(c语言)——双向链表的基本操作
定义一个双向链表结构:typedef struct DulNode{ // *prior:前一个元素的地址 // *next:后一个元素的地址 struct DulNode *prior; Element data; struct DulNode *next;}DulNode,*DuLinkList;初始化一个双向链表 :DuLinkLis...原创 2018-10-15 18:06:04 · 1665 阅读 · 0 评论 -
算法与数据结构(c语言)——链队列存储结构及实现
是队列鸭,FIFO,先进先出!对于带头节点的和不带头节点的链队列的操作有个小小的区别:不带头结点的链队列在入队列的时候,第一个元素时要先判断是否为空,再插入。而带头结点不需要,操作更方便些;----------------我是一条分割线---------------------------------------------------------------------...原创 2018-10-18 18:41:05 · 677 阅读 · 1 评论 -
简单通俗易懂学算法——十大常用排序算法(快速排序)
快速排序:是对冒泡排序的一种改进。先说下快排的一个基本思想:使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。就是通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成...原创 2019-06-11 18:29:59 · 840 阅读 · 0 评论