- 博客(16)
- 收藏
- 关注
原创 二叉搜索树:高效查找与删除指南
对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度 的函数,即。3. cur 不是 root,cur 是 parent.right,则 parent.right = cur.right。3. cur 不是 root,cur 是 parent.right,则 parent.right = cur.left。2. cur 不是 root,cur 是 parent.left,则 parent.left = cur.right。最优情况下,二叉搜索树为完全二叉树,
2025-12-29 12:36:48
1021
原创 排序算法及实现
写这么久不做总结是不可能的,我的天啊天啊,最开始听的时候感觉很简单,等所有内容听完了,发现之前听的都糊在一起了,然后就开始敲敲敲把它们都拆分出来,太不容易(呜呜呜)。这是我第一篇写那么长的博客,太有成就感了!昨天晚上刷翁恺说的话,个人觉得还是很不错的鸡汤,分享给大家:“计算机的所有东西都是人做出来的,别人能想出来,我也一定能想出来,计算机里头没有任何黑魔法,所有的东西只不过是我现在不知道而已”!关关难过关关过,加油吧大家。
2025-12-24 23:26:07
927
1
原创 深入解析优先级队列与堆结构
依旧小结,整体来说堆这一节难度不大,但是还是搞了挺久的,可能冬天到了要冬眠了吧,天天晕晕的。老己不要对自己太好哇!!!
2025-12-20 23:28:51
925
3
原创 树结构入门:从概念到遍历
非终端结点或分支结点:度不为0的结点;如上图:D、E、F、G...等节点为分支结点兄弟结点:具有相同父结点的结点互称为兄弟结点;如上图:B、C是兄弟结点堂兄弟结点:双亲在同一层的结点互为堂兄弟;如上图:H、I互为兄弟结点结点的祖先:从根到该结点所经分支上的所有结点;如上图:A是所有结点的祖先子孙:以某结点为根的子树中任一结点都称为该结点的子孙。如上图:所有结点都是A的子孙森林:由m(m>=0)棵互不相交的树组成的集合称为森林。
2025-12-16 11:08:57
653
3
原创 二叉树经典题解:从基础到进阶
遍历二叉树,当左子树为空且右子树不为空时,左子树在字符串中用()表示,否则直接返回。3,定义inbegin和inend在左右子树中进行递归,确定新的根结点和左右子树。2,如果一个结点为root,另一个在这个root的子树中,返回root。3,遍历左右子树如果左右子树一边一个指定结点,返回这层的root。2,先压入左子树,走的时候先存根节点的值,走完后遍历它的右子树。1,用栈模拟递归过程,把根节点压入栈,循环弹出栈顶节点。2,判断当前root的左子树是否和子树的左子树相同。
2025-12-05 21:54:03
752
3
原创 循环队列与栈的巧妙实现
这里我们需要了解循环队列和普通队列的不同:普通队列的下标可以一直往后加,当循环队列的rear走到当前位置时,如果在选择普通的+1就会越界,那么怎么让他的下标指向下标0位置完成循环呢?1,下标最后再往后(offset 小于 array.length): index = (index + offset) % array.length。1,判断第二个栈是否为空,为空把第一个栈所有元素放入第二个栈,取栈顶元素。2,取出n-1个元素放入空队列中,将队列1的唯一元素拿出。1,将n个元素都放入不为空的队列1中。
2025-11-24 19:32:05
600
9
原创 深入解析:双向链表LinkedList的实现与应用
依旧给出部分功能的实现代码//无头双向链表实现//定义类部类,即每个小结点//头插法}else {head = cur;//尾插法}else{last=cur;//任意位置插入,第一个数据节点为0号下标return;return;return;}else {//插入结点位置cur = code;//定义一个私有类来查找目标元素=0){index--;return cur;//查找是否包含关键字key是否在单链表当中。
2025-11-17 00:34:34
577
1
原创 链表部分功能实现
总结:实在是不想在细写每一步啥意思了,重点看move的两个,next存储的是下个结点的地址,val是这个结点的值。关关难过,关关过,加油。
2025-11-11 19:52:24
215
原创 深入理解ArrayList:从原理到实战
别看这代码简单我写了半天,不知道为什么就是搞了半天(心碎了),但是对顺序表有了很好的理解也值了(经验值+1)下次更新顺序表的发牌游戏,加油加油加油,明天必须再写一篇,哈哈哈。大家都别只看代码,还是要自己动手敲啊,敲了才知道那理解的不太好,看别人写都老简单了。
2025-11-07 22:17:26
389
原创 Java字符串操作全攻略
我的每个博客都要写个小结,哈哈哈哈,String其实没准备写,因为感觉用起来没什么难的,然后今天写题目发现知道大概调用那个,但是还是写不出来,查了各函数的意思才知道所以就决定还是写这个加深下印象吧。c,compareTo 先按照字典次序⼤⼩⽐较,如果出现不等的字符,直接返回这两个字符的⼤⼩差值,如果前k个字符相等(k为两个字符⻓度最⼩值),返回值两个字符串⻓度差值。字符"|","*","+"都得加上转义字符,前⾯加上“\\” ⽽如果是 "\" ,那么就得写成"\\\\"
2025-11-03 23:03:26
262
原创 Java图书管理系统开发教程
这里的将menu定义为抽象方法是因为不同的用户有不同的菜单,这里后面会实现动态绑定。work方法有两个部分,一个是choice及操作者所选择的身份信息,一个是操作书架,不同的身份信息对应的功能不同,所以我们通过choice再去调用work,是其保持一致到此我们的图书管理系统就已经全部写完了,稍微复杂一点的地方在数组的调用,可着重看一下这块部分。这个代码就是看起来唬人,其实写起来也还好,对不懂的地方多研究一下,相信大家都可以完成,有不懂的地方可以问我哦。
2025-11-01 17:28:34
866
原创 揭秘Java抽象类的核心特性与应用
抽象类本身不能被实例化, 要想使用, 只能创建该抽象类的子类. 然后让子类重写抽象类中的抽象方法. 但是使用抽象类相当于多了一重编译器的校验. 使用抽象类的场景为实际工作不应该由父类完成, 而应由子类完成. 那么此时如果不小心误用成父类 了, 使用普通类编译器是不会报错的. 但是父类是抽象类就会在实例化的时候提示错误, 让我们尽早发现问题.在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用 给出具体的实现体。
2025-10-13 22:20:40
286
原创 解密Java多态:从原理到实战
当类的调用者在编写 eat 这个方法的时候, 参数类型为 People(父类), 此时在该方法内部并不知道, 也不关注当前的 a 引用指向的是哪个类型(哪个子类)的实例. 此时 a这个引用调用 eat方法可能会有多种不同的表现(和 a 引用的实例 相关), 这种行为就称为。将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的 方法,此时:将父类引用再还原为子类对象即可,即向下转换。,被重写的方法返回值类型可以不同,但是必须是具有父子关系的。
2025-10-12 22:45:18
894
原创 Java继承机制深度解析
优先在子类中找,找到则访问,否则在父类中找,找到 则访问,否则编译报错。通过派生类对象访问父类与子类同名方法时,如果父类和子类同名方法的参数列表不同(重载),根据调用 方法适传递的参数选择合适的方法访问,如果没有则报错;在子类方法中或者通过子类对象访问方法时,则优先访问自己的,自己没有时 再到父类中找,如果父类中也没有则报错。如果访问的成员变量子类中无,则访问父类继承下来的,如果父类也没有定义,则编译报错。,使其访问父类相关内容,否则默认访问子类。如果访问的成员变量与父类中成员变量同名,则优先访问自己的。
2025-10-10 21:02:50
254
原创 Java数组操作全攻略:从基础到排序
元素类型[ ][ ] array = new 元素类型[ ][ ]{ { },{ } }以升序数组为例,将数组中相邻元素从前往后依次进行比较,如果前一个元素比后一个元素大,则交换,一趟下来后最大元素 就在数组的末尾。元素类型[ ][ ] array = new 元素类型{ { },{ } }元素类型[ ][ ] array = new 元素类型[ 行数 ][ 列数 ]如果等于,返回该元素所在数组的下标。
2025-10-10 20:24:59
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅