![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 52
阿咚do懂
这个作者很懒,什么都没留下…
展开
-
数据结构系列:栈讲解及使用数组模拟
栈原理,数组模拟栈,栈的使用原创 2021-12-06 14:44:46 · 91 阅读 · 0 评论 -
数接结构系列:单向循环列表,约瑟夫问题
Josephu 问题:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。约瑟夫问题,可以抽象为一个单项循环链表图示:阿咚,用Java类的解决约瑟夫问题的思路:用一个不带头结点的循环链表来处理:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的..原创 2021-11-10 13:43:13 · 271 阅读 · 0 评论 -
数据结构系列:自定义双向链表,原理及代码实现
双向链表就是在单向链表的基础上增加一个指向前一个节点的引用(指针)。两者的区别单向链表:只有一个指向下一个节点的指针。优点:单向链表增加删除节点简单。遍历时候不会死循环;缺点:只能从头到尾遍历。只能找到后继,无法找到前驱,也就是只能前进。适用于节点的增加删除。双向链表:有两个指针,一个指向前一个节点,一个后一个节点。优点:可以找到前一个节点和后一个节点,可进可退;缺点:增加删除节点复杂,需要多分配一个指针存储空间。适用于需要双向查找节点值的情况。双向链表的图解:原创 2021-10-13 15:47:25 · 177 阅读 · 0 评论 -
数据结构系列:稀松数组分析,及代码实现
基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。应用场景分析原因:因为该二维数组的很多值是默认值0, 因此记录了很多没有意义的数据.,使用稀松数组。可以很好的记录棋盘数据,以及下棋记录。以上图五子棋为例,我们要存棋盘的下棋记录 ,我们设计一个int[11][11]的数组,来记录每个棋子下落的位置,0.原创 2021-08-13 16:23:15 · 112 阅读 · 0 评论 -
数据结构系列:使用数组模拟环形队列,原理分析,及代码实现
一;队列介绍队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出二:设计分析 因为本章基于数组模拟队列,首先确认一下几点要素: 1)全局变量: 1,队列的最大存量, maxSize,即最多几个元素,也是模拟的数组的长度。 2,队首, int front ,初始设定为0, 即模拟的数组的下标,首位,读取数据时从这个下标读数据。然后这个值移动到下一个位置front = ...原创 2021-08-01 19:13:31 · 111 阅读 · 0 评论