自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构——二叉树的先中后序遍历

——本节内容为Bilibili王道考研《数据结构》P43~P45视频内容笔记。 目录一、二叉树的先中后序遍历1.先中后序遍历2.举例 3.先中后序遍历和前中后缀的关系4.代码实现5.求遍历序列6.应用:求树的深度二、二叉树的层次遍历1.层次遍历2.算法思想:3.算法演示:4.代码实现:三、由遍历序列构造二叉树1.遍历序列构造二叉树2.前序+中序3.后序+中序4.层序+中序(1)二叉树的递归特性: ①要么是个空二叉树; ②要么是由“根结点+左子树+右子树”组成的二叉树。(2)基于此

2022-12-03 22:58:53 14040 2

原创 力扣中的线性扫描

力扣628题中提到的“线性扫描”

2024-05-16 23:44:04 552

原创 数据结构——散列查找

1.散列表(Hash Table),又称哈希表。根据关键字而直接访问的数据结构。也就是说,散列表建立了关键字和存储地址之间的一种直接映射关系(数据元素的关键字与其存储地址直接相关)。2.散列函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,记为(这里的地址可以是数据下标,索引或内存地址等)。3.冲突越多,查找效率越低。4.,装填因子会直接影响散列表的查找效率。

2023-02-04 20:31:50 744

原创 数据结构——B树、B+树

B树又称多路平衡查找树,B树中所有结点的孩子个数的最大值称为B树的阶,通常用m表示。一棵m阶B树或为空树,或为满足如下特性的m叉树:(1)树中每个结点至多有m棵子树,即至多含有m-1个关键字;(2)若根结点不是终端结点,则至少有两棵子树;(3)除根结点外的所有非叶节点至少有棵子树,即至少含有个关键字;(4)所有的叶结点都出现在同一层次上,并且不带信息(可以视为外部结点或类似于折半查找判定树的查找失败结点,实际上这些结点并不存在,指向这些结点的指针为空);

2023-01-23 00:13:33 3095

原创 数据结构——红黑树

红黑树是二叉排序树,即左子树结点值

2023-01-06 22:36:59 1289

原创 数据结构——查找的基本概念

若不等,则所需查找的元素只能在中间元素以外的前半部分或后半部分(例如,在查找表升序排序时,若给定值key大于中间元素,则所查找的元素只可能在后半部分)。然后再缩小的范围内继续进行同样的查找,如此重复,直到找到为止,或确定表中没有所需要查找的元素,则查找不成功,返回查找失败的信息。式中,n是查找表的长度即元素个数;(2)可以用如图所示的判定树来描述有序线性表的查找过程,树中的圆形结点表示有序线性表中存在的元素,树中的矩形结点称为失败结点(若有n个结点,则相应地有n+1个查找失败节点)。

2022-12-29 19:07:37 743

原创 数据结构——关键路径

在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销(如完成活动需要的时间),称之为用边表示活动的网络,简称AOE网。(6)若一个活动的时间余量为0,则说明该活动必须要如期完成,d(i)=0即l(i)=e(i)的活动ai是关键活动,由关键活动组成的路径就是关键路径。(5)活动ai的时间余量:d(i)=l(i)-e(i),表示在不增加完成整个工程所需总时间的情况下,活动ai可以拖延的时间;(2)活动ai的最早开始时间e(i):指该活动弧的起点所表示的事件的最早发生时间;

2022-12-28 23:10:10 8866 1

原创 数据结构——拓扑排序

拓扑排序是对有向无环图的顶点的一种排序,它使得若存在一条从顶点A到顶点B的路径,则在排序中顶点B出现在顶点A的后面。(用顶点表示活动的网)用DAG图(有向无环图)表示一个工程,顶点表示活动,有向边表示活动Vi必须先于活动Vj进行;(3)重复(1)和(2)直到当前AOV网为空或当前网中不存在无前驱的顶点为止(如果当前所有顶点入度>0,说明原图存在回路)。(1)从AOV网中选择一个没有前驱(入度为0)的顶点并输出;(3)重复(1)和(2)直到当前AOV网为空。(1)邻接表:O(|V|+|E|);

2022-12-28 22:35:41 351

原创 数据结构——有向无环图描述表达式

有向无环图:若一个有向图中不存在环,则称为有向无环图,简称DAG图(Directed Acyclic Graph),如下图所示;3.一般会给出一个算术表达式,让我们来求出所需要的最少的顶点个数,下面给出解答步骤;

2022-12-22 12:00:52 1585

原创 王道计组——计算机系统的层次结构

对于使用汇编语言的程序员来说,他所看到的机器似乎是可以直接识别他所编写的汇编语言程序的。所以一般来说用汇编语言编写的程序同样也需要请求操作系统的服务,通过系统调用的方式来请求,系统调用又称为“广义指令”。(比如我们用C语言写的程序,经过编译等步骤后,最终会形成.exe文件,也就是用机器语言描述的程序,只要生成了.exe文件,之后就不需要再编译了,每次要运行这个程序只需要加载这个.exe文件即可)而当今大多数编程所用的高级语言如C++、java等,在我们看来,似乎我们所使用的。

2022-12-21 22:37:44 297

原创 数据结构——最短路径问题

对于一个带权连通无向图G=(V,E),生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树(Minimum-Spanning-Tree,MST)。

2022-12-21 21:28:27 1238

原创 数据结构——图的深度优先遍历(DFS)

(1)DFSTraverse(Graph G)函数针对于非连通图无法遍历完所有结点的情况,思想和广度优先遍历中的BFSTraverse一样;②同一个图的邻接表的表示方式不唯一,因此深度优先遍历序列不唯一,深度优先生成树也不唯一;②查找每个顶点的邻接点都需要O(|V|)的时间,而总共有|V|个顶点;②查找各个顶点的邻接点共需要O(|E|)的时间;①访问|V|个顶点需要O(|V|)的时间;①访问|V|个顶点需要O(|V|)的时间;③时间复杂度=O(|V|+|E|);(2)最坏情况,递归深度为O(|V|);

2022-12-19 19:14:31 648

原创 王道计组——计算机硬件部件以及工作过程

——本节内容为Bilibili王道考研《计算机组成原理》P5视频内容笔记。目录一、主存储器1.组成(1)存储体(2)MAR存储地址寄存器(3)MDR存储数据寄存器2.具体操作过程(1)读取数据 (2)写入数据 3.存储体组成详解二、运算器1.图示2.功能3.组成4.存放作用三、控制器1.图示2.组成3.具体操作过程四、计算机工作过程1.举例2.步骤(1)执行主存地址为0的指令 (2)执行主存地址为1的指令(3)执行主存地址为2的指令(4)执行主存地址为3的指令(5)执行主存地址为4的指令3.总结

2022-12-17 16:49:25 885

原创 数据结构——图的广度优先遍历(BFS)

①初始化一个辅助队列;②根结点入队;③若队列非空,则队头结点出队,并访问该结点,然后将其左、右子树结点插入队尾(如果有的话);

2022-12-16 21:30:52 1012

原创 数据结构——图的基本操作

删出边时间复杂度O(1)~O(|V|);时间复杂度O(1)~O(|V|)。时间复杂度:出度O(1)~O(|V|);(1)功能:假设图G中顶点y是顶点x的一个邻接点,返回除y之外顶点x的下一个邻接点的顶点号,若y是x的最后一个邻接点则返回-1。出边时间复杂度O(1),入边时间复杂度O(1)~O(|E|)。②Set_edge_value(G,x,y,v):设置图G中边(x,y)或对应的权值为v。①Get_edge_value(G,x,y):获取图G中边(x,y)或对应的权值;

2022-12-16 18:49:13 1559

原创 王道计组——计算机的组成

(1)计算机系统=硬件+软件:①硬件如主机、外设等;②软件如操作系统、我们所用的app等;2)软件又可分为系统软件和应用软件:①系统软件用来管理整个计算机系统,比如操作系统、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理程序、服务程(3)以存储器为中心,输入设备直接将数据程序存入存储器中,经过运算器的运算再返回存储器,由输出设备直接从存储器中取走输出(4)由于运算器和控制器的逻辑关系十分紧密,所以在大规模集成电路制作工艺出现之后,它们两个通常是被集成在同一个部件上的,即CPU=运算器+控制器;

2022-12-15 23:00:20 637

原创 数据结构——图的存储(2)

①i=2,j=1边结点中jLink的指向改为顺延原本所指的下一个jLink的所指也就是NULL;(3)边结点包括:边的两个顶点编号i,j、权值、依附于顶点 i 的下一条边、依附于顶点 j 的下一条边;(4)和十字链表法类似,按顺序画顶点结点、边结点、firstedge连线、iLink和jLink连线;(3)弧结点包括:弧尾顶点编号、弧头顶点编号、权值、弧头相同的下一条弧、弧尾相同的下一条弧;(2)顶点结点包括:数据域、该顶点作为弧头的第一条弧、作为结尾的第一条弧;(2)删除边、删除结点等操作很方便;

2022-12-15 18:08:24 230

原创 数据结构——图的存储(1)

define MaxVertexNum 100 //顶点数目的最大值//顶点表//邻接矩阵,边表//图的当前顶点数和边数/弧数}MGraph;(1)顶点中可以存更复杂的信息;(2)由于在邻接矩阵当中只需要存0和1两种状态,所以边表的数据类型可以改为bool型或枚举类型;

2022-12-14 19:16:05 294

原创 数据结构——图的基本概念

1.图G由顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。2.若,则用 |V| 表示图G中顶点的个数,也称图G的阶;3.,用 |E| 表示图G中边的条数;(1)设有两个图G=(V,E)和G'=(V',E'),若V'是V的子集,且E'是E的子集,则称G'是G的子图;说白了就是从原图中摘出来一部分,但这部分必须称得上图;(2)若有满足V(G')=V(G)的子图G',则称其为G的生成子图;

2022-12-14 00:40:53 651

原创 数据结构——哈夫曼树

1.在含有n个带权叶结点的二叉树中,其中带权路径长度(WPL)最小的二叉树称为哈夫曼树,也称最优二叉树。

2022-12-13 17:04:53 3534

原创 数据结构——平衡二叉树

1.平衡二叉树,简称平衡树(AVL树),树上任一结点的左子树和右子树的高度之差不超过1;2.结点的平衡因子=左子树高-右子树高;3.平衡二叉树结点的平衡因子的值只可能是-1、0、1;4.只要有任一结点的平衡因子绝对值大于1,就不是平衡二叉树。1.key为数据域;2.balance为平衡因子。int key;

2022-12-13 15:14:16 907

原创 数据结构——二叉排序树

(1)二叉排序树,又称二叉查找树。一棵二叉树或是空二叉树,或是具有如下性质的二叉树:①左子树上所有结点的关键字均小于根结点的关键字;②右子树上所有结点的关键字均大于根结点的关键字;③左子树和右子树又各是一棵二叉排序树。(2)由于左子树结点值

2022-12-11 18:46:44 460

原创 数据结构——树和森林的遍历

(1)定义:若树非空,先依次对每棵子树进行后根遍历,最后再访问根结点。(1)定义:若树非空,先访问根结点,再依次对每棵子树进行先根遍历。③先序遍历除去第一棵树之后剩余的树构成的森林。③中序遍历除去第一棵树之后剩余的树构成的森林。①中序遍历森林中第一棵树的根结点的子树森林;(3)树的先根遍历序列与这棵树相应的二叉树先序序列相同。(3)树的后根遍历序列与这棵树相应二叉树的中序序列相同。(3)树的后根遍历序列与这棵树相应二叉树的中序序列相同。①访问森林中第一棵树的根结点;(4)树的后根遍历也称深度优先遍历。

2022-12-10 22:39:23 868

原创 数据结构——树的存储结构

④如果删除的结点是一棵子树的根结点,那么要将这棵子树的所有结点都删掉;(7)查询:双亲表示法来查指定结点的双亲很方便,但查找孩子结点只能从头到尾遍历依次对比;先将森林的各个树转换为二叉树,再将各个树的根结点视为兄弟关系绑在一起即可;①采用数组的形式,把根结点固定存在数组下标为0的位置,并且用-1表示其没有父结点;最后给结点数n--;左边为孩子,右边为兄弟,最右边一条线上的为各个树的根结点;(1)定义:每个结点中保存指向双亲的“指针”(实则为数组下标);③孩子结点就当左孩子结点,兄弟结点就当右孩子结点;

2022-12-08 19:47:25 3916 2

原创 数据结构——线索二叉树

——本节内容为Bilibili王道考研《数据结构》P46~P48视频内容笔记。目录一、线索二叉树的概念1.引入2.中序线索二叉树3.中序线索二叉树的存储结构 4.先序线索二叉树二、二叉树的线索化1.找中序序列前驱2.中序线索化3.先序线索化4.后序线索化三、线索二叉树找前驱、后继1.中序线索二叉树找中序后继2.中序线索二叉树找中序前驱3.先序线索二叉树找先序后继4.先序线索二叉树找先序前驱5.后序线索二叉树找后序前驱6.后序线索二叉树找后序后继(1)普通的二叉树,我们之前学到可以写出其中序遍历序列。这个序列

2022-12-07 23:04:21 516

原创 数据结构——树与二叉树基础

(1)二叉树是n(n>=0)个结点的有限集合:①空二叉树,即n=0;②由一个根结点和两个互不相交的被称为根的左子树和右子树组成,左子树和右子树又分别是一棵二叉树。(2)特点:①每个结点至多只有两棵子树;②左右子树不能颠倒(二叉树是有序树)。

2022-12-02 20:45:40 597

原创 从朴素匹配算法到KMP算法

定义结构体SString,结构体成员分别为:1.char型字符;2.int型串长length。

2022-12-02 10:57:12 116

原创 栈在表达式求值中的应用

1.中缀:也就是平时我们常用的表达式,比如1+2这种运算符在两个操作数中间的表达式;2.前缀:+ 1 2;运算符在操作数前的表达式,也称波兰表达式(Polish notation);3.后缀:1 2 +;运算符在操作数后的表达式,也称逆波兰表达式(Reverse Polish notation),相对于前缀表达式,后缀表达式用的更多一些,并且后缀表达式适用于基于栈的编程语言;4.不论是前缀还是后缀,要注意两个操作数的左右顺序不能随意改变。

2022-11-27 18:36:41 130

原创 队列基础篇

define MaxSize 10 //定义队列中元素的最大个数//用静态数组存放队列元素//队头指针和队尾指针}SqQueue;(1)声明时:SqQueue Q;(2)front指向队头元素;rear指向队尾元素的后一个位置(下一个应该插入的位置);(3)这里的front和rear也同样不是数据类型指针,而是功能上类似指针的int型整数,在这里映射的是队头队尾元素的数组下标。typedef struct LinkNode { //链式队列结点int data;

2022-11-24 15:25:26 757

原创 栈的基本操作

define MaxSize 10 //定义栈中元素的最大个数{//静态数组存放栈中元素int top;//栈顶指针,名叫指针,实则只是一个int型整数来反映栈顶元素的数组下标}SqStack;//后续声明一个顺序栈(分配空间)就 SqStack S;补充解释:(1)顺序存储:给各个数据元素分配连续的存储空间,大小为MaxSize*sizeof(ElemType);(2)结构中定义的int top名为栈顶指针,这里的“指针”和我们所说的数据类型指针实际上不是一回事。

2022-11-24 14:32:39 5001 3

原创 顺序表OR链表,到底爱哪个?

顺序表和链表的区别与取舍

2022-11-20 21:23:41 233

原创 双链表、循环链表、静态链表

双链表、循环链表、静态链表

2022-11-20 20:15:30 609

原创 单链表的基本操作

单链表基本操作

2022-11-20 15:00:23 3134

原创 顺序表的基本操作

顺序表的基本操作

2022-11-18 13:22:23 1761 1

原创 伪随机序列生成函数&冒泡排序

伪随机序列生成函数&冒泡排序

2022-11-01 12:49:08 1156 2

原创 C语言牛顿迭代法求开平方

C语言牛顿迭代法求开平方

2022-10-20 00:30:10 2037

原创 C打印九九乘法表

C打印九九乘法表

2022-10-18 17:44:11 1085 2

原创 C判断1~1000内的所有完全数

完全数,也即因子(除过本身)之和等于自身的数。举例:6的因子有1、2、3、6(自身不参与累加),且6=1+2+3,则6成为完全数。

2022-10-18 14:42:22 2347 2

空空如也

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

TA关注的人

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