- 博客(23)
- 收藏
- 关注
原创 二叉树oj联习
定义oj题目采用递归的思想在gaodu函数中算出左子树的高度和右子树的高度相减进行比较再用递归遍历左右子树依次算出每个结点的左右子树高度比较,只要有一个不符合条件则不为平衡二叉树代码展示。
2024-06-11 18:35:30 183
原创 二叉树讲解
本文讲解关于二叉树的创建和各种功能的实现,重点讲解前,中,后和层序遍历的写法(层序遍历放到了本文前面先讲,如果是刚接触二叉数可以先看功能展示)前中后序的遍历都用到了递归都写法而层序遍历使用创建队列的方式来解决
2024-06-04 21:50:57 612
原创 二叉堆讲解
完全二叉树和不完全二叉树的概念二叉堆必须是一颗完全二叉树,否则数组有空缺无法建堆像这样任意1子小于其父的或者像这样任意1子大于其父的都称为二叉堆结构体创建。
2024-05-28 21:54:26 309 2
原创 栈的创建以及原地扩容与异地扩容详细讲解
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。简单来说:栈是遵循后进先出原则的线性表物理线性和理论线性既然规定了栈为一种特殊的线性表那么它一定是理论线性的那它是否是物理线性呢?这时需要插一段原地扩容与异地扩容的知识先看下面这段代码。
2024-05-12 19:11:36 198 1
原创 链表带环判断及查找问题
本文详细介绍了带环链表的判断与入环结点的查找,对算法进行剖析主要采用了快慢指针,数学运算等方法将问题简化编译语言:c。
2024-05-11 21:45:43 334 1
原创 C语⾔内存函数
和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。如果source和destination有任何的重叠,复制的结果都是未定义的。memset是⽤来设置内存的,将内存中的值以字节为单位设置成想要的内容(如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。⽐较从ptr1和ptr2指针指向的位置开始,向后的num个字节。函数memcpy从source的位置开始向后复制num个。的数据到destination指向的内存位置。这个函数在遇到 '\0' 的时候并不会停下来。
2024-03-28 13:08:28 186
原创 字符函数和字符串函数
⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀ 样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到 \0 的内容追加到destination指向的字符串末尾。strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串 中的位置。strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标 记。
2024-03-26 15:54:55 468 1
原创 指针的深入理解
本文整理了一些指针常见的知识点char* 类型的指针变量+1跳过1个字节, int* 类型的指针变量+1跳过了4个字节。const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的内容不能修改,但是指针指 向的内容,可以通过指针改变。NULL 是C语⾔中定义的⼀个标识符常量,值是0,0也是地址,这个地址是⽆法使⽤的,读写该地址 会报错。//将int*重命名为ptr_t。
2024-03-25 17:00:34 587
原创 c语言入门复习回顾
注: dec 为十进制 oct为八进制 hex为十六进制 ch为字符ASCLL一共有128个编码%c 用来打印单个字符(' ')%s 用来打印字符串(char类型字符串后自带\0字符,\0为字符串结束的标志)(" ")
2024-01-11 18:52:02 398 1
原创 VS实用调试技巧
F9:创建断点和取消断点 断点的作⽤是可以在程序的任意位置设置断点,打上断点就可以使得程序执⾏到想要的位置暂定执 ⾏,接下来我们就可以使⽤F10,F11这些快捷键,观察代码的执⾏细节。在函 数调⽤的地⽅,想进⼊函数观察细节,必须使⽤F11,如果使⽤F10,直接完成函数调⽤。在调试的过程中我们,如果要观察代码执⾏过程中,上下⽂环境中的变量的值,有哪些⽅法呢?F10:逐过程,通常⽤来处理⼀个过程,⼀个过程可以是⼀次函数调⽤,或者是⼀条语句。F5:启动调试,经常⽤来直接跳到下⼀个断点处,⼀般是 和F9配合使⽤。
2023-12-30 23:34:14 410 1
原创 找出3个字符串中的最大值
*在vs编译器中gets函数不能正常使用应写为gets_s**这是因为gets()函数不稳定:gets()函数不检查目标数组是否能够容纳输入,而若想把一个字符串读到程序中,最先要做的事情就是预留存储字符串的空间。所以这很容易导致分配的空间不够大而数组越界,然而gets()函数并不检查这个方面,所以导致的结果就是程序很容易出现漏洞,著名的“蠕虫”病毒的原理就是用很长的数据覆盖原有数据导致崩溃。
2023-12-27 18:16:26 1111 1
原创 查询天数代码
注:bool使用前需要包含头文件stdbool.h。已知年数%4等于0并且年数%100不等于0为闰年。闰年2月为29天所以要单拿出来考虑。输入年月即可查询天数。
2023-12-13 23:57:04 69 2
原创 有序合并数列
将数组的下标定义,每个数组的按照下标顺序依次比较大小把小的留下即可。注:此方法前提为有序的数列,所以我们需要先将数列们排好序再合并。合并一系列数组并排序普通的方法可以直接将数组合并后再进行排序。而这里给大家介绍一个更优的有序合并数列法。
2023-12-13 23:49:31 61 2
原创 二分法查找
值得注意的是,这段代码里的------这串代码可以方便大家计算出一个字符所占用的字节sizeof(arr)计算了全部的字节数,而sizeof(arr[0])则计算了一个字符所占的字节数sizeof(arr)/sizeof(arr[0])则计算出了一个字符所占用的字节注:(sizeof函数需标注头文件stlib.h)
2023-12-11 17:12:08 60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人