数据结构
会时
致力提供高质量文章,分享所学,共同成长!
展开
-
数据结构思维导图
原创 2021-06-22 19:42:16 · 361 阅读 · 0 评论 -
[Java数据结构][10]Java二叉树
[Java数据结构][10]二叉树前、中、后序遍历(递归)的Java代码实现文章目录[Java数据结构][10]二叉树前、中、后序遍历(递归)的Java代码实现1.前序遍历2.中序遍历3.后序遍历1.前序遍历先输出根节点,然后输出左节点,右节点,代码思路很简单 /** * 前序遍历方法 */ public void preOrder() { System.out.println(this);//先输出父节点 //向左子树递归原创 2020-07-05 19:14:20 · 187 阅读 · 0 评论 -
[Java数据结构][9]以雇员为例的哈希表HashTable代码展开
[Java数据结构][9]以雇员为例的哈希表HashTable代码展开散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。下图就是一个简易哈希表,原创 2020-07-04 21:54:27 · 150 阅读 · 0 评论 -
[Java数据结构][8]八皇后问题的判定条件分析
[Java数据结构][8]八皇后问题的判定条件分析由于在博客中已经可以看到很多八皇后问题相关的java代码,例如public class Queen8 { //定义一个max表示共有多少皇后 int max = 8; int[] array = new int[max]; static int count = 0; public static void main(String[] args) { Queen8 queen8 = new Quee原创 2020-06-29 16:49:15 · 721 阅读 · 1 评论 -
[Java数据结构][7]中缀表达式转后缀表达式的Java代码实现
[Java数据结构][7]中缀表达式转后缀表达式的Java代码实现中缀表达式是一个通用的算术或逻辑公式表示方法。也就是我们人平常使用的表示方式,如2+(2+6)*5-8逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后)例如 3 + ( 4 + 5)* 6 -83 4 5 + 6 * + 8 -中缀表达式转后缀表达式方法初始化两个栈:运算符栈s1 和储存中间结果的栈s2;从左至右扫描中缀表达式;遇到操作数时,将原创 2020-06-29 09:17:48 · 375 阅读 · 0 评论 -
递归中使用记忆化解法,LeetCode509. 斐波那契数
斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)题目示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1转载 2020-06-27 18:49:54 · 315 阅读 · 0 评论 -
[Java数据结构][6]逆波兰表达式的Java代码实现
[Java数据结构][6]逆波兰表达式的Java代码实现逆波兰表达式又叫做后缀表达式。逆波兰表示法是波兰逻辑学家J・卢卡西维兹(J・ Lukasewicz)于1929年首先提出的一种表达式的表示方法 。后来,人们就把用这种表示法写出的表达式称作“逆波兰表达式”。逆波兰表达式把运算量写在前面,把算符写在后面。如(3+4)×5-6,写作逆波兰表达式就是3 4 + 5 × 6规则1.从左至右扫描,将3 和4 压入堆栈;2.遇到+运算符,因此弹出4 和3(4 为栈顶元素,3 为次顶元素),计算出3+4原创 2020-06-25 14:28:12 · 318 阅读 · 0 评论 -
[Java数据结构][5]Java通过站实现简易计算器
[Java数据结构][5]Java通过站实现简易计算器原理讲解Java栈的实现通过扫描表达式文本在我们之前栈的基础上,创建数栈和符号栈,通过上图的讲解,完成简易的计算器(10以内的数字,且目前仅限±*/)新增的方法1.返回栈顶元素,用于之后不取出的比较 /* 返回当前栈顶的值,但不是真的pop */ public int peek() { return stack[top]; }2. 返回运算符的优先级,数字越大,优先级越高/*原创 2020-06-24 21:54:03 · 351 阅读 · 0 评论 -
[Java数据结构][4]栈的Java代码实现
[Java数据结构][4]栈的Java代码实现栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。下面来看代码定义一个栈/*定义一个类表示栈 */class ArrayStack { private int maxSize; //栈的大小 private int[]原创 2020-06-20 23:03:24 · 251 阅读 · 0 评论 -
[Java数据结构][3]单链表以及双向链表Java代码实现
单链表Java代码实现,以水浒英雄链表为例单链表 :元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。┌───┬───┐│data │next │└───┴───┘头结点不存放数据,但存放着下一个指针的地址,其他每个指针服从上面所示存储关系,最后一个指针指向null。定义一个英雄链表/** * 定义结点, 每个对象是一个结点 * */ class HeroNode { p原创 2020-06-18 20:03:16 · 280 阅读 · 0 评论 -
[Java数据结构][2]初级队列的、循环队列 Java代码实现
初级队列的Java代码实现队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First in First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。就像下图这样,例如打水的时候,第一个来的先打先走,后面的同学依次排队。接着,我们来列举代码中的方法。构造队列 private int maxSize; //数组最大容量 private int front; //队列头 private in原创 2020-06-14 21:41:50 · 195 阅读 · 1 评论 -
[Java数据结构][1] 稀疏数组的Java代码实现案例
来自尚硅谷Java数据结构的课程笔记当遇见一个数组中有许多默认的重复数字时候,如棋盘,地图,可以用稀疏数组存储,节省存储空间掌握数组到稀疏数组掌握稀疏数组返回原数组案例可以看到以稀疏数组存储有效的节省了空间,接下来我们来实现代码。代码创建数组,初始化并输出 // 创建原始二维数组 int chessArr1[][] = new int[11][11]; chessArr1[1][2] = 1; chessArr1[2][3] = 2;原创 2020-06-13 20:09:46 · 168 阅读 · 0 评论