![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 56
大六书
这个作者很懒,什么都没留下…
展开
-
最短路径问题
问题描述:在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径。 问题分类: 1单源最短路径问题:从某固定源出发求其到所有其他顶点的最短路径。 (1)无权图: 按照递增顺序找出到各个顶点的最短路径//使用邻接表存储 dist[]和path[]全部初始化为-1 typedef struct GNode *PtrToGNode; typedef struct Vnode {原创 2017-12-06 01:18:32 · 520 阅读 · 0 评论 -
经典排序算法
1简单插入排序:void Insert_Sort(ElementType A[], int N) { for(P=1; P<N; P++) { Tmp = A[P];//摸下一张牌 for(i=P; i>0 && A[P-1]>Tmp; i--) { A[i] = A[i-1];//移出空位 } A[i]原创 2017-12-08 20:50:11 · 123 阅读 · 0 评论 -
数据结构-栈和队列
数据结构-栈和队列 栈和队列都是动态集合,且在其上进行删除操作所移除的元素都是预先设定的。在栈中被删除的是最新插入的元素,栈实现的是一种后进先出的策略。队列实现的是一种先进先出的策略。栈和队列的实现方式主要有顺序存储和链式存储方式。原创 2017-11-20 20:57:04 · 207 阅读 · 0 评论 -
栈和队列的应用
利用栈和队列实现表达式求值表达式求值和一元多项式加法运算原创 2017-11-22 22:33:30 · 1497 阅读 · 0 评论 -
数据结构-二叉树
二叉树是一种树形结构,其特点是每个节点最多有两棵子树,并且子树有左右之分,次序不能随意颠倒。1二叉树的存储结构1.1顺序存储结构 完全二叉树:按从上到下,从左往右的顺序存储,n个节点的完全二叉树的节点父子关系: 非根结点(序号 i > 1)的父结点的序号是 i / 2; 结点(序号为i)的左孩子结点的序号是 2i, (若2 i <= n,否则没有左孩子); 结原创 2017-11-28 23:29:55 · 224 阅读 · 0 评论 -
二叉搜索树
1.二叉搜索树也称二叉排序树或者二叉查找树。一棵二叉树满足一下定义: (1)非空左子树的所有键值小于其根节点的键值。 (2)非空右子树的所有键值大于其根节点的键值。 (3)左右子树都是二叉搜索树。 2.二叉搜索树的查找操作:Find (1)若X小于根节点键值,只需在左子树中继续查找。 (2)若X大于根节点键值,在右子树中继续查找。 (3)若两者比较结果相等,返回此节点。 //非递归查找原创 2017-11-30 00:09:11 · 131 阅读 · 0 评论 -
AVL树的插入和删除
平衡二叉树定义:任一节点的左右子树高度差的绝对值不超过1。 定义BF为平衡因子,HL和HR分别为T的左右子树的高度,满足|BF|<=1。 节点数为n的平衡二叉树的最大高度为O(lgn)。 查找、插入和删除在平均和最坏情况下的时间复杂度都是 O(logn),增加和删除可能需要通过一次或多次树旋转来重新平衡这棵树。 在AVL树中插入一个节点的算法: (1)若树为空,插入元素作为AVL树的根节原创 2017-12-01 10:54:24 · 373 阅读 · 0 评论 -
Huffman树
Huffman树的定义: 带权路径长度(WPL):设二叉树有n个叶子节点,每个叶子节点带有权值Wk,从根节点到每一个叶子节点的长度为Lk,则每个叶子节点的带权路径长度之和就是WPL=∑nk=1=WkLk\sum_{k=1}^n = WkLk 所以WPL最小的二叉树就是Huffman树或者最优二叉树。 Huffman树的特点: (1)没有度为1的节点 (2)n个叶子节点的Huffman树共原创 2017-12-03 01:02:08 · 307 阅读 · 0 评论 -
堆和优先队列
优先队列:特殊的队列,取出元素的顺序是依据元素的优先权大小,而不是元素进入队列的先后顺序。 堆的特性符合优先队列的要求: (1)结构性:用数组表示完全二叉树; (2)有序性:任一节点的关键字是其子树所有节点的最大值或者最小值。 1最大堆的插入typedef struct HNode *Heap; struct HNode { ElementType *Data;//存储元素的数组原创 2017-12-01 22:46:11 · 214 阅读 · 0 评论 -
图
图是表示“多对多”的关系,包含一组定点和一组边,一组顶点通常用V(Vertex)表示顶点集合,一组边通常用E(Edge)表示边的集合。 边是顶点对:(v,w) 属于E,其中v,w属于V 有向边 < v,w > 表示从v指向w的边 1邻接矩阵表示法: 邻接矩阵G[N][N]-N个顶点从0到N-1编号 对于有权路径的图G[i][j] = 1表示 < vi, vj >有边,否则表示没边 对于稀疏原创 2017-12-04 18:07:48 · 93 阅读 · 0 评论 -
RSA算法推导
1.随机选择两个互质数,p和q,计算N=pq 比如p=5, q=7,N=35(这里只是说明原理,实际会选择大的质数) 2.根据欧拉函数,求r=(p-1)(q-1) r=(5-1)(7-1)=24 3.选择一个小于r的整数e,使e与r互质。并求得e关于r的模逆元,命名为d 取e=5,求d,要求e*d%r = 1 转化为公式ex - ry = 1 求解x,y package main i...原创 2019-09-27 12:20:12 · 413 阅读 · 0 评论