数据结构+算法
大树下躲雨
让未来的自己感谢现在的我
展开
-
链表实现栈
链表实现栈一、项目结构二、链表1、节点Nodepublic class Node { private int n; private Node next; public Node(int n) { this.n = n; } public int getN() { return n; } public void setN(int n) { this.n = n; }原创 2021-12-16 14:03:58 · 756 阅读 · 0 评论 -
数据结构:栈
栈一、栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。二、栈的实现(数组)public class ArrayStack { /** * 栈的大小 */ private int原创 2021-12-16 13:03:21 · 101 阅读 · 0 评论 -
Josephu(约瑟夫)问题
Josephu(约瑟夫)问题一、介绍1、Josephu(约瑟夫)问题 设编号为1,2,…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依此类推,直到所有人出列为止,由此产生一个出队编号的序列提示:用一个不带头节点的圆形链表来解决Josephu问题: 首先形成一个循环链表节点n,然后从k节点数从1,数到m,相应的节点从链表中删除,然后从删除节点的下一个节点数从1,直到最后一个节点从链表的删除算法结束原创 2021-12-08 23:07:47 · 520 阅读 · 0 评论 -
单向、双向链表
链表一、介绍1、介绍 链表是一种非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点(链表中每一个元素称为节点)组成,节点可以在运行时动态生成。每个节点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域(1)单向链表(单链表)是链表的一种,它由节点组成,每个节点都包含下一个节点的指针(2)双向链表(双链表)是链表的一种。和单链表一样,双链表也是由节点组成,它的每个数据节点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链原创 2021-12-08 21:45:36 · 2951 阅读 · 0 评论 -
队列(数组实现)
队列(数组实现)一、队列介绍1、介绍队列是一种先进先出(FIFO—first in first out)线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾;进行删除操作的端称为队头;队列中没有元素时,称为空队列;队列的数据元素又称为队列元素;在队列中插入一个队列元素称为入队;从队列中删除一个队列元素称为出队;因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,原创 2021-12-08 21:20:57 · 670 阅读 · 0 评论 -
稀疏数组demo
1、图解2、稀疏数组 Java Demoimport java.io.*;import java.lang.reflect.Array;import java.nio.charset.StandardCharsets;/** * @Author: dashu * @Description: 稀疏数组demo * @Date: 2021/11/30 23:54 * @Version: 1.0 */public class SparseArrayDemo { public原创 2021-12-01 00:32:06 · 498 阅读 · 0 评论