笔记
文章平均质量分 66
시랑한다银子
这个作者很懒,什么都没留下…
展开
-
java红黑树详解
1、红黑树概述 红黑树是一种近似平衡的树,没有像AVL树那样严格的平衡,但是AVL树为了保证它的绝对平衡,对插入和删除的效率有一定的影响,而红黑树插入和删除的效率就要高的多。同时,它又是一颗二叉查找树,使得它查找的效率也很高,查找的时间复杂度为O(logn),所以红黑树要优于AVL树。 2、红黑树特性 根结点为黑 结点为红或黑 不能有连续的两个红结点(红结点的子结点必须为黑) 任一结点到它们子孙结点的所有路径上黑结点的数量相等 叶子结点为黑(这里的叶子结点指的是null结点) 3、补充特性 最长路径上原创 2021-03-22 14:54:51 · 595 阅读 · 0 评论 -
java求解约瑟夫问题
文章目录前言一、问题描述二、解决思路三、过程图解四、时间复杂度五、代码实现1.测试代码2.代码分析总结 前言 约瑟夫问题是数据结构中的经典算法题,这里使用java中的单向环形链表解决该问题。 一、问题描述 n个人围成一圈,每个人分别标注为1、2、…、n,要求从1号从1开始报数,报到m的人出圈,接着下一个人又从1开始报数,如此循环,直到剩余人数为0,输出出队序列。例如当n=25,m=12时,出队序列为12,24,11,25,14,3,18,8,1,19,13,7,5,4,6,10,17,23,20,16,2.原创 2021-01-19 22:25:07 · 547 阅读 · 0 评论 -
java实现双向链表
文章目录前言一、双向链表是什么?二、双向链表图解三、双向链表案例四、代码实现1.测试代码2.代码分析总结 前言 双向链表是一种很常见的链表结构,在java的api中就能看到它,这里使用java对其进行简单的实现。 一、双向链表是什么? 顾名思义,双向链表就是有两个引用,分别指向前一节点和后一节点的一种链式存储结构。 二、双向链表图解 三、双向链表案例 请使用双向链表模拟对水浒传中英雄人物的尾添加,有序添加,修改,删除,打印等操作。 四、代码实现 1.测试代码 代码如下: package com.yc.l.原创 2021-01-18 21:43:15 · 315 阅读 · 0 评论 -
java实现单链表
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、单链表是什么?二、单链表图解三、单链表案例四、代码实现1.测试代码2.代码分析总结 前言 有时java api提供的链表并不能满足我们所有的需要,所以我们可以尝试自己实现一个单链表作为练习 一、单链表是什么? 单链表是一种链式存取的数据结构,因为它只有指向下一个地址的引用,所以叫单向链表。 二、单链表图解 三、单链表案例 请使用单链表模拟对水浒传中英雄人物的尾添加,有序添加,修改,删除,顺序查找,逆序查找,链表逆转,逆原创 2021-01-17 23:13:43 · 289 阅读 · 0 评论 -
java实现稀疏数组
数据结构之稀疏数组总结前言一、稀疏数组是什么?二、如何使用稀疏数组?1.普通数组2.稀疏数组3.解释三、代码实现总结 前言 看了韩顺平老师的数据结构与算法视频后,在此分享稀疏数组的简单实现,希望能与更多的朋友一起交流学习经验。 一、稀疏数组是什么? 把一个数组很大但元素很少的普通数组转化为另一个数组,这就是稀疏数组。 二、如何使用稀疏数组? 1.普通数组 2.稀疏数组 3.解释 稀疏数组至少有一行,第一行第一列为普通数组的行数,第一行第二列为普通数组的列数,第一行第三列为普通数组的非0元素个数,然后原创 2021-01-16 23:34:46 · 111 阅读 · 0 评论