自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心仔的博客

学无止境

  • 博客(9)
  • 收藏
  • 关注

原创 带你深度理解二叉树递归(习题篇)

首先我们得建立一个二叉树才能开始二叉树递归之旅,所以要先定义一个二叉树中的节点结构体类型(包含节点值,节点左指针和右指针),再构建一个创造节点的函数(包含了初始化),之后创造节点,手动按如下图的顺序链接即可。代码如下:注:下文的所有习题的二叉树都是上面的建立的二叉树,而且难度由简到难给定一个二叉树,计算出它的节点总数。求树的节点三步递归思想:第一步:先想子问题,即每个子树,都是先节点总数加1,然后再遍历左子树和右子树第二步:递归先后顺序:节点数加1→左子树→右子树第三步:递归终止条件:遇到节点为N

2022-12-20 10:59:43 338 11

原创 二叉树的前序,中序,后序和层序遍历

由于二叉树的增删查改意义不大,所以我们直接手动建立二叉树。建立简易二叉树之前,我们先定义一个二叉树中的节点结构体类型(包含节点值,节点左指针和右指针),再构建一个创造节点的函数(包含了初始化),之后创造节点,手动按如下图的顺序链接即可。代码如下:注:下文的遍历都有此树。1.前序遍历的基本概念:遇到每个节点都是先遍历跟,再遍历左子针,最后遍历右子树。2.前序遍历三步递归思想:第一步:先想子问题,即每个子树,都是先遍历跟,再遍历左子树,最后遍历右子树第二步:递归先后顺序:跟→左子树→右子树第三步:递

2022-12-03 21:45:16 493 10

原创 删除有序数组中的重复项

给你一个的数组 nums ,请你删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。元素的应该保持 一致。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k。注:不要使用额外的空间,你必须在修改输入数组 并在使用的条件下完成。

2022-11-30 22:43:48 313 6

原创 移除元素(进阶版)

给你一个数组 nums 和一个值 val,你需要移除所有数值等于的元素,并返回移除后数组的。不要使用额外的数组空间,你必须仅使用额外空间并修改输入数组。元素的顺序可以改变(你不需要考虑数组中超出新长度后面的元素)。。输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。

2022-11-21 21:11:46 166 7

原创 实现顺序表的10个基本操作

顺序表是一种常见的线性表,线性表(linear list)是n个具有相同特性的数据元素的有限序列,是一种在实际中广泛使用的数据结构。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表和数值是相似的,唯一不同的是顺序表里的数据一定是连续存储的。

2022-11-01 17:43:11 817 16

原创 C语言:函数递归详解(建议收藏)

程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。

2022-10-28 14:22:20 36854 47

原创 getchar与putchar用法及缓冲区详解

总的来说,对于初学者而言,getchar和putchar字符函数的用法是难以理解的,特别是其中它们的接收值和返回值。而且在运用getchar输入字符函数时,一定要谨慎缓冲区的存在,在必要的情况下要清空缓冲区。本文包含了所有相关要点,希望可以帮到你们,若还有什么疑惑,欢迎私信或者评论喔。

2022-10-26 10:18:17 1877 26

原创 break和continue在三大循环体中的区别(秒懂)

break和continue两大关键词的定义break的定义:只要循环遇到了break,就停止break接下来的所有循环(break之后的代码也不会再执行了),直接终止所有循环。continue的定义:只要循环遇到了continue,就会终止本次循环,也就是本次循环中continue后边的代码不会再执行。

2022-10-24 22:30:15 2071 17

原创 二进制,八进制,十进制,十六进制之间的相互转换(简易)

二进制转换十进制我们直接暴力举例:二进制数为 00001101,则它的十进制怎么转换呢?转换原则 :从低位0开始,位次所对应的数乘以2^(位次),然后每一位次得到的数值相加所得到的总和,即为十进制的数值。所以00001101 等于0x2^7 + 0x2^6 + ······+1x2^3 + 1x2^2 +0x2^1 +1x2^0 ,结果为 13。

2022-10-17 19:35:40 1949 12

空空如也

空空如也

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

TA关注的人

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