- 博客(30)
- 收藏
- 关注
原创 完全二叉树叶子结点数量的计算
5. 第10层的490个节点是由第9层的 \( \lceil 490 / 2 \rceil = 245 \) 个节点生成的。2. **层数的计算错误**:在计算树的层数时,可能会混淆 \( 2^h \) 和 \( 2^h - 1 \)。4. **度为1的节点数的假设**:在验证时,可能会忽略完全二叉树中度为1的节点数最多为1的情况。3. **对于任何二叉树,度为0的节点(叶子节点)数 = 度为2的节点数 + 1**。2. **高度为h的二叉树最多有2^h - 1个节点**(即满二叉树的情况)。
2025-03-31 10:56:33
248
原创 【数据结构】链表的带环问题
如果起始点到入口点的距离是 L,环的周长是 C,入口点到相遇点的距离是 X ( 0 <= X < C,因为 fast 的速度是 slow 的两倍 ), 那么 slow 走的路程是 L + X,fast 走的路程是 L + n*C + X,其中 n 是正整数,n >= 1,代表 slow 进圈前 fast 转的圈数。2)如果 c - 1 是奇数,n 最后会从 3 减到 -1,即 fast 会错过 slow,跑到 slow 的前一个位置。
2025-02-27 12:23:00
1171
原创 【数据结构】链表练习
可以使用快慢指针:fast 一次走两步,slow 一次走一步。当 fast == NULL(偶数个结点)或者 fast->next == NULL(奇数个结点)就停止,返回 slow。给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。1、一次性定义多个指针时,第二个及以后的指针名前面都要加 *。2、while( )括号内是循环继续的条件。要求:只遍历一遍链表。
2025-02-23 12:50:42
292
原创 【C语言】有关位段的题目
需要注意的是位段成员的存储空间是从右到左的(VS 环境下),用 %02x (十六进制)打印 puc 数组元素,puc 认为它指向的是一个类型为 unsigned char 的数组,所以 puc[0] 就是 00000010,puc[1] 就是 00101001,所以最终打印的结果就是 02 29 00 00。但 puc 认为它指向的是一个数组,pstPimData 认为它指向的是一个结构体。puc 和 pstPimData 指向同一个地址,题目是:打印的结果是什么?
2025-02-11 11:43:40
125
原创 数据的存储(万字总结,建议收藏)
原码、反码、补码计算机中的有符号整数有三种二进制表示方法, 即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用 0 表示 “正” , 用 1 表示 “负”正数的原码、反码、补码是相同的负数的原码、反码、补码要经过计算的原码按照一个数的正负, 直接写出它的二进制表示形式得到的就是原码反码反码是原码的符号位不变, 其他位按位取反补码补码是反码+1例:整型占4个字节 (32bit)如 10 的:00000000000000000
2025-01-08 18:08:52
1356
原创 【c语言】逃离停车场
返回离开停车场的字符串。L、R、D分别表示向左、向右、向下移动,L、R、D后的数字表示移动的距离。除了一楼,每一层只有一个楼梯,一楼没有任何楼梯。请你设计并返回一个最快离开停车场的字符串。你被困在一个多层停车场。您的任务是仅使用楼梯离开停车场。出口总是在一楼的右下角。2 表示您的起始位置,可以在停车场的任何一层。表示向右走三下,向下走两下,再向右走一下。您必须使用楼梯 1 才能下一层。接下来的 N 行表示停车场。第一行 N 表示有几层楼。出口总是在一楼的右下角。0 表示免费停车位。
2024-12-19 23:01:28
288
原创 【c语言初学者】用c语言打印杨辉三角
用两个 for 循环,外循环控制 m 的值,使 m 每次加一,直到输出到想要输出的行数( m 的值加一就是行数)。每次退出内循环后,控制换行。再算出 m、(m-n)、n 的阶乘,分别赋给 s1、s2、s3,就可以表示这个组合数了,组合数的“上标”和“下标”恰好和二维数组元素的下标对应,每次算出一个组合数,就可以存储到一个二维数组的一个元素去。例如在杨辉三角中,第3行的三个数恰好对应着两数和的平方的展开式的每一项的系数,第4行的四个数恰好依次对应两数和的立方的展开式的每一项的系数,依次类推。
2024-12-08 21:05:16
341
原创 【c语言】printf函数和scanf函数的一些功能和易错点
scanf() 读取⽤⼾输⼊时,%d占位符会忽略起⾸的空格,从-处开始获取数据,读取到-13停下来,因为后⾯的.不属于整数的有效字符。这⼀次读取的⾸字符是.,由于对应的占位符是%f,会读取到.45e12 ,这是采⽤科学计数法的浮点数格式。为了防⽌这种情况,使⽤读⼊字符串的最⻓⻓度,即写成%[m]s ,其中的[m] 是⼀个整数,表⽰读取字符串的最⼤⻓度,后⾯的字符将被丢弃。如果要强制跳过字符前的空⽩字符,可以写成scanf(" %c", &ch) ,即%c 前加上⼀个空格,表⽰跳过零个或多个空⽩字符。
2024-12-05 18:03:59
449
原创 【c语言初学者】寻找数组的鞍点的代码+解析
/如果a[i][q]大于max(max是现已知的最大值),就把a[i][q]的值赋值给max。题目描述:找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1
2024-12-04 21:46:41
431
原创 你好,编程世界
我的家乡在四川巴中,我大学就读于宜宾学院,我的专业是数字媒体技术,我现在是大一,正在学习c语言,已学习到数组了,感觉好难,但又发现了很多乐趣,比如某一道题一下就测评过关,就很有成就感。我以后想从事这方面的工作,做一个码农,我觉得这很适合我吧,因为我性格比较内向,喜欢理性思维吧。我先把谭浩强的《c程序设计》看一遍,再更着网课学一遍加深一下印象,再做一遍老师发的题目。现在主要是完成学校布置的作业吧,有时候也拓展一些题目,有些题目感觉很有趣,但我c语言才学到数组,不知道往后学会不会越来越难。
2024-11-30 18:34:11
221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人