![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
小敬是个码农
这个作者很懒,什么都没留下…
展开
-
数据结构之单链表合并
分析 1.传递两个链表参数 2.创建辅助变量存储第一个链表,防止第一个链表的头节点发生变化 3.创建辅助变量存储第二个链表的下一个节点,防止在改变当前节点的指针时,导致后续节点失效 4.遍历第二个链表,在遍历过程中遍历第一个链表,判断节点的排序 代码实现 /** * 合并两个单链表,合并之后仍然有序 * @return */ public static HeroNode betweenLinkedList(HeroNode start,HeroNode end){原创 2022-02-21 21:34:46 · 1367 阅读 · 0 评论 -
数据结构之单链表反转
public void reverseNode(){ //判断链表是否有节点,或者只有一个节点 if (head.next == null || head.next.next == null){ return; } //创建一个辅助变量存储节点 HeroNode cur = head.next; //创建一个辅助变量存储原始链表的下一个节点 HeroNode next =.原创 2022-02-21 21:30:51 · 201 阅读 · 0 评论 -
数据结构之队列(数组实现)
使用场景 银行排队,头部的人先完成业务,给每个人一个编号 先进先出,通过指针指定到编号 介绍 1.队列是一个有序列表,可以用数组或是链表来实现 2.遵循先入先出原则 数组模拟队列 思路分析 1.队列本身是有序列表,若使用数组来存储队列数据,则maxSize是该队列的最大容量 2.因为队列的输出、输出是分别从前后端来处理,因此需要两个变量front、rear分别记录队列前后端的下标,front会随着数据输出变化,rear则是对着数据输入变化 3.当我们将数据存入队列时,称为addQueue 1)将尾原创 2022-02-20 17:20:17 · 389 阅读 · 0 评论 -
数据结构之稀疏数组
应用场景 五子棋游戏中存盘问题,完成续上盘的功能 # 使用二维数组保存的问题,没有棋子数据的位置都是 0 介绍 1.当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存数据 稀疏数组的处理方法 1.记录数组一共有几行几列,有多少个不同的值 2.把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 # 稀疏数组记录方式 第一行表示原始二维数组的规模是多大,值有几个 剩余行表示值的位置和具体值 转换思路 # 原始数组转稀疏数组 1.遍历原始的二维数原创 2022-02-20 15:28:12 · 71 阅读 · 0 评论 -
数据结构之单链表
介绍 1.链表是有序的列表,但是链表在内存中是分散存储的 2.可以根据实际需求决定是否带头节点head 应用实例 使用带head头指针的单向链表实现-水浒英雄排行榜管理 1.完成对英雄人物的增删改查操作 2.第一种方法在添加英雄时,直接添加到链表的尾部 3.第二种方式在添加英雄时,根据排名将英雄插入到指定位置(如果有这个排名,则添加失败) 添加(创建) 1.先创建一个head头节点,作用就是表示单链表的头 2.后面我们每添加一个节点,就直接加入到链表的最后 遍历 代码实现 package demo原创 2022-02-21 15:14:15 · 203 阅读 · 0 评论