- 博客(13)
- 收藏
- 关注
原创 【数据结构】堆与二叉树
树是一种非线性的数据结构,其由 n 个 ( n >= 0 ) 有限节点所组成的一个有层次关系的集合。之所以称其为树,是因为其逻辑结构看起来像是一颗倒挂的树。在树中,有一个特殊的节点称为根节点(如上图中的 body 节点)根节点的特色是他没有前驱节点,除了根节点之外的其他节点被分成了 M 个 ( M > 0 )互不相交的集合T1T2TmT1T2...Tm每一个集合的结构与树类似,我们又称其为子树,每个子树的根节点都有且只有一个前驱节点。
2025-03-02 21:03:39
1034
9
原创 【C语言复习】字符串函數
如果来原字符串的长度小于num,则拷贝完来原字符串后,在目标空间后边追加 0 直到num个。如果 source 指向的字符串的⻓度⼩于 num 的时候,只会将字符串中到。这个函数的作用就是在目标字符串后追加 source 字符串。比较是比较 str1 和 str2 字符的ASCII码值。的内容追加到destination指向的字符串末尾。读者有兴趣可以去看看错误码有哪些。这个函数可能相对会比较抽象。标准规定的返回值如下。它在做的事情是这样的。
2025-02-12 21:37:34
795
3
原创 指针复习 ( 下 )
根据数组名是数组⾸元素的地址这个规则,⼆维数组的数组名表⽰的就是第⼀⾏的地址,是⼀维数组的地址。根据上⾯的例⼦,第⼀⾏的⼀维数组的类型就是 int [5] ,所以。parr[i]是访问parr数组的元素,parr[i]找到的数组元素指向了整型⼀维数组,parr[i][j]就是整型⼀维数 组中的元素。⼆维数组其实可以看做是每个元素是⼀维数组的数组,也就是⼆维 数组的每个元素是⼀个⼀维数组。在本质上,数组传参传递的是首元素的地址,既然传入的是地址,那函数形参理论上也就应该使用指针变量来接收首元素的地址。
2025-02-12 11:26:13
762
1
原创 指针复习 ( 上 )
我们知道传值调用之所以没有办法成功交换 a 和 b 的值是因为 x、y 与 a、b的地址是不一样的,那我们只要让传入的形参是 a 和 b 的地址,不就能顺利交换了?这种传递的方式就称为。可以看到,藉由传入 a 和 b 的地址当做 Swap2 函数的参数,就可以成功让 a 和 b 的值进行交换,这种方式就称为。因为 a 是整型,申请了4个字节的空间,这4个字节是连续的,因此只要知道最小字节的地址,就能访问到4个字节的数据。而我们拿到了变量的地址,就能去拿到这个地址中的内容,要怎么拿到地址中的内容呢?
2025-02-12 00:18:53
823
6
原创 【数据结构】单向链表 OJ篇
假设环存在,当慢指针进环时没有和快指针碰上,则快指针就会开始追击慢指针。思路 : 让一个指针从链表起始位置开始遍历链表,同时让一个指针从判环时相遇点的位置开始绕环运行,两个指针都是每次均走一步,最终肯定会在入口点的位置相遇。思路1 : 大于等于 x 的一个新链表,小于 x 的一个新链表,在小于x的新链表的最后一个节点后插入大于等于x的新链表。思路 : 利用两个指针,一个指针每次只走一步,另一个指针每次走两步。当慢指针走一步,快指针走三步,假设环存在,则在环中,两个指针每次的距离都会缩减两步。
2025-02-08 20:07:41
1581
4
原创 【初阶】数据结构 - 单向链表
此外,虽然双向带头循环链表的结构较为复杂,但等我们真正实现这种链表后会发现它有很多优势。这种链表的结构较为复杂,一般用双向带头循环链表来单独存储数据,实际上使用的链表数据结构都是双向带头循环链表。一般来说不会用来存储数据,通常是用来作为其他数据的子结构,如哈希桶、图的邻接表等。本身的值,让它存储新节点的地址。链表是物理上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现。在线性表的逻辑结构中,数据元素是按顺序排列的,因此它在。但在线性表的物理存储方式上,它不一定是连续的。
2025-02-04 20:40:11
1494
2
原创 【入门】C++
宏的优点增加带码的复用性提高性能宏的优点不方便调试 ( 因为预处理阶段就进行了宏替换 )对于有些操作,宏定义会比较复杂,导致代码可读性差、可维护性差没有类型安全检查相较于宏定义函数,inline函数更 安全、可调试、可优化,并且可以与模板结合使用。
2025-02-01 10:45:24
904
3
原创 【初阶】数据结构 - 算法效率 & 顺序表
有些算法的时间复杂度存在最好、平均、最坏三种情况: 输入任意规模运行的最小次数: 输入任意规模运行的期望次数: 输入任意规模运行的最大次数FNN22∗N10我们可以看到,随着N逐渐增加,对于整个表达式的影响越来越小。因此,如果我们以大O来表示这段代码的时间复杂度则是ON2( 只保留最高阶项,因为最高阶项对于整体的影响是最大的 )FN2∗N10ONOMNO1O1最好的情况 : 传递的数组是,此时时间复杂度是ON最坏的情况 : 传递的数组是,此时时间复杂度是。
2025-01-29 17:25:01
1403
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人