- 博客(14)
- 收藏
- 关注
转载 递归反转单链表(彻底完解)
反转单链表的迭代实现不是一个困难的事情,但是递归实现就有点难度了,如果再加一点难度,让你仅仅反转单链表中的一部分,你是否能够递归实现呢?本文就来由浅入深,step by step 地解决这个问题。如果你还不会递归地反转单链表也没关系,本文会从递归反转整个单链表开始拓展,只要你明白单链表的结构,相信你能够有所收获。// 单链表节点的结构public class ListNode { int val; ListNode next; ListNode(int x) { val
2022-05-08 22:36:05
2691
1
原创 对于空结点的详解
在开始学习堆栈和队列的时候,若是用链表来存储。那么在最开始创建(以堆栈为例)的时候,老师会说先建立一个空结点,在这个空结点的基础上进行插入删除的操作(理由是这样会方便点),本人当时愚见是进行插入时就不用判断头指针是否为空或者删除时不用让尾指针指向NULL。直到现在创建树这块没有用空结点出问题才理解了 老师所谓的方便:先看堆栈的结构定义:这是部分函数:我们先建立一个空结点,让堆栈Stack指向这个空结点。压栈函数将所需要压入的元素压入堆栈。当我用差不多的...
2022-01-24 16:09:20
1792
原创 二叉树的同构判断
今天重新理了一下同构的思路:首先,不多说废话,先上图: 这个题的重点部分就在后面递归的应用写法,我们知道给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。 那么最后的部分的大框架就是,如果两棵树的左右孩子本身就一样,那么是同构的:即Isomorphism(T1[R1].Left, T2[R2].Left)&&Isomorphism(T1[R1].right, T2[R2].right) == ...
2022-01-23 18:20:52
1272
原创 c语言进阶结构类型
枚举:1 . 枚举变量可以赋值给不存在的数值,例如: enum COLOR {red, green, blue}; //这里枚举的有效数值为0-2; enum COLOR t = 5; // 编译器并不会报错2.在枚举的最后可以加上一个number: enum COLOR {red, green, blue, number}; //number用来遍历枚举或构建用枚举数量做下标的数组会很方便;注意这里看抛开number...
2021-12-19 16:43:45
791
原创 c语言字符串函数
取字符串长度的函数(不包括结尾0) strlen:#include<stdio.h>int mylen(const char *s){ int cnt = 0; while(s[cnt] != 0){ cnt++; } return cnt;}int main(){ char array[] = "dhahsvgasvj"; printf("len = %d", mylen(array)); retur...
2021-12-16 21:59:26
972
原创 最大子列和·在线处理算法
求解最大子列和问题:在线处理算法 在线处理算法,初次接触难以想象居然有这么吊的,原本自己的就是第2个傻了吧唧的时间复杂度为O(n^2)的蠢算法,刚看到分而治之的思想已经觉得它极端巧妙,毕竟从O(n^2) 减少到了O(n log n ),而且其中的算法思想也是之前所不具备的,其中甚至还有一个在线处理算法,居然将时间复杂度降低到了O(n),这个就已经很叼了,毕竟这已经是能想象的最快算法了,毕竟无论怎么说也需要将n个数据一个个读完的,并且它能够随时得到该子列的最大子列和。即就算改变了该子列,....
2021-12-15 21:12:42
439
原创 指针与数组的关系和malloc动态分配空房间
思考1: 2个指针变量能否同时指向1个变量,要是这样做了,会有什么不好的后果?若指针类型不一致,很可能导致修改过程中出现错误。尽量避免这种写法。若类型一致暂时没找到毛病,但这肯定不是一个好习惯。避免这种写法。思考2: const的指针与数组的关系,数组是可以看作const的指针,还是说数组就是const的指针?附上代码:#include<stdio.h>void text(int array[], int *const p1, const int...
2021-12-13 19:56:58
120
原创 C语言对于指针的进一步理解
比如说定义一个字符数组后若是想直接对它整体输入输出,只需这样写:char word[100];scanf(“%s”, word);printf ("%s", word);但是还可以这样,比方说数组的word[0]需要用来判断某些东西,需要保留,不想被改写,那我们还是能整体输入,输出。我们可以这样写。char word[100] = {'0'};scanf("%s", &word[1]);printf("%s" , &word[1]);这是因为word它..
2021-12-09 11:59:40
582
原创 判断是否为素数入门到进阶
今天又回过头学习了素数的判断才发现之前的简直不能看下去。果然,觉得编程这东西需要去及时复习,回顾,博客就是很不错的一个选择。今天就讨论下素数这东西的几种判断方法:我们先定义变量: int i,m,N,isprime=1;第一种:毫无思考可言,完全按照定义求:用N来界定要求多少范围内的素数;i是寻找该范围内的素数;for(m=2;m<i; m++){ if(i%m==0){ isprime=0; break; } if(is......
2021-11-05 00:02:36
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人