
数据结构与算法
文章平均质量分 94
CarlosXu14
日常分享代码心得,勿吐槽
展开
-
数组模拟环形队列
利用数组通过取模的方式来实现环形队列:尾索引的下一个为头索引时表示队列满,即将队列容量空出一个作为约定,在判断队列满的时候为:(rear+1)%maxSize==front空:rear==front分析示意图代码实现:队列:package com.souche.replacement.report.test;/** * @Author:xuwei * @Date:2020...转载 2020-01-19 10:01:43 · 131 阅读 · 0 评论 -
为什么MySQL用B+树做索引?
索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整。本文就来从头到尾介绍下数据库的索引。索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在[1,2,3,4]中找到4这个数据,直接对全数...转载 2020-01-10 11:07:22 · 210 阅读 · 0 评论 -
什么是B树?为啥文件索引要用B树而不用二叉查找树?
最近看了帅地的一篇关于面试时B树的文章,感觉他的风格特别有趣,给大家分享一下一、面试被怼面试官:你知道文件索引、数据库索引一般用什么数据结构来存储吗?小秋:知道啊,一般都是用树形结构来存储的。面试官:可以说说为啥用树形结构来存储吗?小秋:树形结构例如想 B 树,B+ 树,二叉查找树都是有序的,所以查询效率很高,可以再 O(logn) 的时间复杂度查找到目标数据。面试官:那可以问问文件索...转载 2020-01-10 10:46:07 · 480 阅读 · 0 评论 -
单链表的实现及实现链表的反转、逆序、倒数查询
链表是有序的列表,但它在内存中的存储如下:小结:链表是以节点的的方式来存储,是链式存储每个节点包含data域,next域:指向下一个节点链表各个节点不一定是连续存储链表分为带头节点的链表和没有头节点的链表,根据实际的需求来确定。带头节点的逻辑结构示意图如下:单链表的应用实例:定义实体类:/定义HeroNode,每个HeroNode对象就是-一个节点class HeroN...原创 2020-01-09 13:53:50 · 318 阅读 · 0 评论 -
双向链表的实现
定义双向链表:// 定义HeroNode2 ,每个HeroNode 对象就是-一个节点class HeroNode2 { public int no; public String name; public String nickname; public HeroNode2 next;//指向下-一个节点,默认为null public HeroNode2 ...原创 2020-01-09 14:33:34 · 140 阅读 · 0 评论 -
单向循环链表应用场景
Josephu(约瑟夫、约瑟夫环)问 题:Josephu问题为: 设编号为1, 2, … n的n个人围坐一圈,约定编号为k (1<=k<=n) 的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。提示:用一个不带头结点的循环链表来处理Josephu问题:先构成-一个有n个结点的单循环链表,然...原创 2020-01-09 15:32:32 · 881 阅读 · 0 评论