数据结构
数据结构
周星星吖
记录而已
展开
-
Dijkstra---单源最短路径
????Dijkstra????【基本思想】:总述:从一个最初只含有源点的有向子网开始,逐步扩大到由单源最短路径构成的有向子网为止。最初只含有源点的有向子网称为入选子网。入选子网以外的顶点组成候选点集。@ 候选点集的一个顶点被加入到入选子网需满足条件:从源点到该顶点的最短带权路径长度已知,而且除...原创 2019-12-31 15:29:20 · 354 阅读 · 0 评论 -
Kruskal----最小生成树
???? Kruskal算法????【基本思想】首先分别组成N个具有单个顶点的连通子网然后又不断在边集中选择连接两个不同的连通子网且权值最小的边把两个连通子网合并时,“根”大的子网并入“根”小的子网。????【算法描述】设连通图N=(V,{E})是连通网,令最小生成树的初始状态为只有n个顶点而无边的非联通子图...原创 2019-12-31 10:45:34 · 182 阅读 · 0 评论 -
二叉树
二叉树(有关二叉树的基本定义与存储结构已在这里简要说明--->https://blog.csdn.net/qq_38193883/article/details/98869738)下面是二叉树的基本操作:定义存储结构:typedef char Elemtype;//定义 type...原创 2019-08-08 15:51:13 · 287 阅读 · 3 评论 -
平衡二叉树
平衡二叉树搜索树的结点按不同插入次序,将导致不同的深度和平均查找长度ASL。引例:【简单解析】例如图一: 寻找Jan结点的查找长度为1,Feb的查找长度为2,Mar的查找长度为2,Apr,June,May的查找长度为3……因此 ASL(图a)=【1x(第一层总节点数)+2x(第二层总节...原创 2019-08-20 16:31:53 · 1579 阅读 · 1 评论 -
二叉查找树
二叉查找树 定义:又称为是二叉排序树(Binary Sort Tree)或二叉搜索树。 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 1) 若左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2) 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点...原创 2019-08-11 19:48:24 · 297 阅读 · 3 评论 -
树与森林(二)
树与二叉树、森林首先我们来介绍一种树节点的表示法:举个例子:如下图:A 的左指针指向长子(左孩子)B,右指针指向相邻兄弟,显然 无 。B左指针指向向长子(左孩子)D,右指针指向相邻兄弟,显然是C。C左指针指向向长子(左孩子)G,右指针指向相邻兄弟,显然 无 。D左指针指向向长子(左孩子)无,右...原创 2019-08-21 12:02:31 · 209 阅读 · 2 评论 -
哈夫曼树与哈弗曼编码
哈夫曼树与哈夫曼编码 相关概念 路径: 树中一个结点到另一个结点之间的分支序列。 路径长度: 路径上分支的条数 结点的权: 给结点赋予的数值 带权路径长度:结点的权值与该结点到树根间路径长度的乘积 树的带权路径长度:树种所有叶结点的带权路径长度之和,记为: WPL=(W1*L1 + W...原创 2019-09-15 20:30:37 · 1057 阅读 · 3 评论 -
如何判断单链表中有环?
如何判断单链表中有环? 【注】单链表有关内容在这里---->https://blog.csdn.net/qq_38193883/article/details/93322720 单链表中的环:是指链表的尾结点指向了链表中的某个节点Such as : 有两种常用方法:O...原创 2019-08-21 13:22:05 · 372 阅读 · 2 评论 -
线索二叉树
线索二叉树通过二叉树及其遍历算法我们了解到:二叉树的遍历过程较为复杂,需要用到递归和栈; 二叉树的节点遍历序列是一个线性序列; 二叉链表难以找到前驱后继节点信息; 二n个结点的二叉链表中,有2n个指针域{n-1个非空指针域,n+1个空指针域} 【4注】证明:可以参考...原创 2019-08-18 23:44:23 · 218 阅读 · 1 评论 -
树与森林(一)
一: 关于树的基本知识咳咳~,今天我们一起学习树。首先,它不长这样------->也不是这样---------------->当然,也不这样----------> and ----------------------->我们数据结构中的树形结构当然炫酷无比~...原创 2019-08-20 16:48:40 · 255 阅读 · 0 评论 -
八皇后
递归-------八皇后 问题描述: 国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 思路:学习了小甲鱼的算法(代码里有魅力注释~) 奉上代码: #include...原创 2019-07-29 08:17:32 · 124 阅读 · 0 评论 -
约瑟夫
约瑟夫(Josephus) 问题由来: 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每...原创 2019-07-28 14:14:15 · 437 阅读 · 0 评论 -
表达式求值(中缀表达式转换为后缀表达式)
表达式求值(番外)对栈与队列不是很理解的宝宝欢迎看一下这里---------->https://blog.csdn.net/qq_38193883/article/details/93158778✨-------一个表达式由操作数(亦称运算对象)、操作符(亦称运算符)和分界符组成。------✨✨算术表达...原创 2019-06-24 10:11:06 · 1118 阅读 · 1 评论 -
STL 栈与队列
STL 栈与队列 关于栈的理解: 后进先出(Last In First Out)简称为LIFO线性表。 限定插入和 删除数据元素的操作只...原创 2019-08-21 22:23:50 · 337 阅读 · 0 评论 -
线性表(1)---顺序表
线性表(♪含C实现基本操作♪)严老师《数据结构》一书中说提出的第一种结构就是线性表,这也正是因为它是数据结构中最简单的数据存储结构。本篇就简单介绍相关的基本操作的原理及相应的C代码。 ...原创 2019-06-24 22:13:55 · 240 阅读 · 1 评论 -
双向链表
双向链表 ✍通俗定义: 就是在线性表的链式存储中,每个物理节点增加一个指向后继节点的指针域 和一个指向前驱节点的指针域 它长这样儿: ✍优缺点: 优点(与单链表相比双向链表): 1. 从任一节点出发可以 快速找到与其相邻的前(驱)后(继)节点...原创 2019-07-29 14:27:27 · 308 阅读 · 0 评论 -
栈(C语言版
第一种: 顺序栈 可采取这位大佬的顺序栈(静态数组): https://blog.csdn.net/potential1/article/details/72578086 (ta采用的顺序栈是一个存放数据的数组和一个栈顶指针top(初始值为-1) )很简洁易懂。 2. 也可采用这两位大佬的顺序栈(动态数组):...原创 2019-07-31 20:37:01 · 165 阅读 · 0 评论 -
队列(C语言版)
队列 队列既可以用链式结构存储也可以用顺序结构存储, 【---跟栈相反的是,栈我们一般用顺序表实现,而队列我们常用链表来实现,简称为链队列 --】第一种:顺序队列: 老规矩,先看它长得易接受不^V^( 自己画的...原创 2019-07-31 20:40:25 · 314 阅读 · 0 评论 -
循环队列
循环队列此前我在这篇博客中提出了假溢出的概念: ----->https://blog.csdn.net/qq_38193883/article/details/97661165因为还有大量实际空间未被占用,此时又不应该...原创 2019-07-31 20:42:10 · 1527 阅读 · 0 评论 -
递归引例---斐波那切数列
递归---> 斐波那切数列在讲解递归之前,我们先来解决下著名的“兔子数列”(刚好是本博主的属相,偷着乐~,蛤蛤~v~)也即“斐波那切数列”。图片选自小小画家(超可爱有木有~)如果我们设F表示兔子有几对,用n表示第几个月,那么第n个月的兔子数F(n)的数学表达式为: Method ...原创 2019-07-31 20:30:32 · 910 阅读 · 0 评论 -
线性表(2)-----单链表
单链表(含代码)❀叨叨两句:前面已经介绍过线性表有两种存储方式:顺序与链式。 ✌顺序存储方式相关内容在这儿:--->https://mp.csdn.net/postedit/93474277需要注意的是两种存储方式的优缺点:顺序...原创 2019-06-26 13:22:13 · 179 阅读 · 0 评论