- 博客(22)
- 收藏
- 关注
原创 平衡二叉树的基本操作
(Balanced Binary Tree)是一种,它的每个节点的左子树和右子树的。也就是说,平衡二叉树是一种高度平衡的二叉树,它可以保持在树的高度较小的情况下,实现较快的查找、插入和删除操作。平衡二叉树的一个重要特性是,它的高度是对数级别的,因此在进行查找操作时,,其中n为树中节点的个数。这使得平衡二叉树在实际应用中具有较高的效率和性能。常见的平衡二叉树包括等,它们都是通过不同的方式来维护树的平衡性,以确保树的高度始终保持在较小的范围内。
2023-12-16 14:25:24 85
原创 树形dp(分组背包)
有一棵苹果树,如果树枝有分叉,一定是分二叉(就是说没有只有一个儿子的结点)这棵树共有N个结点(叶子点或者树枝分叉点),编号为1∼N,树根编号一定是1。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果。
2023-10-24 18:42:55 169
原创 鼹鼠报数的题解
Winder 养了一群会报数的鼹鼠,而且Winder喜欢用数字给他的鼹鼠们编号,如“311”、“1048”等。为了锻炼鼹鼠们的身体健康,Winder决定让鼹鼠们进行掘土训练,顺便提高鼹鼠们的挖掘能力。第二只与第一只相比,若编号值大的鼹鼠,则向右下方挖洞,否则向左下方。接下来的鼹鼠们以此类推,若比洞中所在鼹鼠编号值,则向右下方走,否则向左下方。报数规则为:如果A鼹鼠的下方分别存在ALeft鼹鼠和Aright鼹鼠,则ALeft鼹鼠在Aright鼹鼠之前报数,Aright鼹鼠在A鼹鼠之前报数。
2023-10-21 14:13:02 699 1
原创 指针传参也只是值传递
指针传参也只是值传递,只是这个“值”是地址,也就是说当主函数中的 p 作为参数传递时,被调用的函数会生成一个对应指针类型的临时变量作为暂存 p 中的值,这个临时变量的地址与原来 p 的地址不同,也就是说我们改变 tmp_p并不能改变 p 的值。
2023-10-19 20:39:23 77 1
原创 汇编学习笔记(2015 CMU CSAPP)
栈是以八个字节为单位进退的,0x130->0x128->0x120,一个内存单元可以存一个字节,即一个栈可以存八个字节,也就是说存的内存地址最多16位。
2023-10-03 21:31:25 63
原创 Linux学习(一)
默认目录:home目录(/home/wbq)当前工作目录:即当前命令所执行的目录,默认为home目录[ ]含义为可选可不选相对路径:从当前工作目录开始,不需要 “/“开头绝对路径:/home/wbq/desktop… (从根目录开始, 以”/” 开头)特殊路径符:.当前目录,…上一级目录, ~home目录final shell 中ctrl + L可以清屏。
2023-10-01 15:09:27 66
原创 单调栈的题型总结
单调栈分为单调递增栈和单调递减栈,二者在定义上有所区别,即一个是维护栈使其保持单调递增,另一个是维护栈使其保持单调递减。单调递减栈用于求最近的大元素, 而单调递增栈用于求最近的小元素。求右边第一个大元素的问题可以转化为逆序然后求左边第一个大元素的问题;求左边时同理;尽管二者相同,但是在时间复杂度上有一些差距, 根据题题目,可以适当选择,当然也可以用手写栈来减少时间复杂度上的差距。单调栈适用于寻找第一个大于当前位置的元素的位置,或者第一个小于当前位置的元素的位置。
2023-09-25 18:40:03 131 1
原创 算法与数据结构笔记(前、中、后缀表达式的相互转化)
新建栈num用来存数据,将后缀表达式按读取顺序依依入栈num,遇到操作符,做如下处理:以。新建栈num用来存数据,将前缀表达式按读取顺序依依入栈num,遇到操作符,做如下处理:以。,中缀表达式对应树的中序遍历,前缀表达式对应树的前序遍历,后缀表达式对应树的后序遍历。,分别存入dat栈、op栈(>=);再将op栈存入dat栈,此时dat栈。,分别存入dat栈、op栈(>);再将op栈存入dat栈,此时dat栈。的顺序计算新的值,并且入栈num;的顺序计算新的值,并且入栈num;
2023-09-20 17:23:29 74 1
原创 汇编语言第二章(寄存器)
运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接内部各种器件,在它们之间进行信息传输。不同的CPU,寄存器的个数、结构是不相同的。8086CPU有14个寄存器,每个寄存器有一个名称。这些寄存器是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、 DS、 ES、 PSW。8086 CPU 的所有寄存器都是16位,即两个字(一个字为两个字节),通用寄存器有。每一种通用寄存器都分为高位和地位,是为了兼容老式8位寄存器,AX的高位(AH), 低位(AL)。
2023-09-10 20:32:45 144 1
原创 汇编第一章笔记
高级语言要通过编译程序翻译成汇编代码,汇编语言要通过汇编得到机器语言(01 串),计算机才能执行。汇编语言的核心就是汇编指令,汇编指令即机器指令的助记符,用来代替繁琐的01二进制,便于记忆,且二者是一一对应的关系,每一种 CPU 都有自己特有的汇编指令集。
2023-09-07 21:28:37 54 1
原创 st表操作(附代码)
我们用 st[i][j] 来表示原数组 a[n] 中区间ii2j−1内的最大值, 以实现用 O(1) 的复杂度来查询任意区间 [p, q] 的最大值, 具体怎么实现看下文。
2023-09-04 19:00:14 144 2
原创 MarkDown编辑数学公式
fxyx2y2(x2xyxyx12y1−y2x1−y12x2x1−x1−xx2x3fxyx2y2xϵ150yϵ12345}dxdu∣x0{xy3x−y9a⋅b1∫01x2dx∫1−tt2x2dxn→∞limn→∞limn10i1∑ni2n。
2023-08-24 19:43:50 55 1
原创 多叉树转二叉树(左孩子右兄弟表示法)
右图中结点 1 的左子节点是 4 表示 4 是 1 的 “孩子”, 4 的 左子节点是 7 表示 7 是 4 的左子节点,接着 4 的右子节点是 3 表示 3 是 4 的兄弟,即 1 的子节点,以此类推……不过要注意的是根节点 1 的左子节点可以是它“孩子”中的任何一个,没有要求,即不一定要和 4 相连,也可以和 2、3 中的其中一个相连。为了将多叉树的结点间“孩子兄弟”的信息以二叉树的形式保存下来,我们需要借助二叉树的左右两个子节点作为区分“孩子兄弟”的标记。好了,以上就是本期文章的全部内容了。
2023-08-13 20:41:35 407 1
原创 一些图的概念
如果任意两个顶点之间都能够连通,则称此无向图为连通图。如果对于某一连通子图而言,已经含有尽可能多的顶点以及尽可能多的边,再加上任何一个顶点或者边,都会使其变为非连通子图。对于连通图而言,极大连通子图只有一个,即本身;对于非连通图而言,极大连通子图有多个。对于生成树,我们引入一个概念--“极小连通子图”。极小连通子图首先是子图,然后保证连通且边最少的图,一个顶点也叫极小连通子图。那么生成树就是一个连通图的所有顶点集构成的一个极小连通子图,对于一个连通图而言,可以存在多个生成树,我们一般不讨论非连通图的生成树。
2023-08-11 15:48:39 44 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人