
java数据结构
文章平均质量分 78
Meloneating
这个作者很懒,什么都没留下…
展开
-
java之dfs和bfs
java之图的遍历深度优先遍历广度优先遍历代码文章内容选自尚硅谷,jdk11,eclipse环境深度优先遍历首先明确概念 遍历,就是把图中的每个结点都输出一遍数据结构是采用的二维数组形式,其主对角元素为零,为对称矩阵。若矩阵arr[i][j]为1,代表i结点与j结点相连,如果某一行,某一列全0,意味着该点不与其他点相连,独立于其他所有点之外。明确了以上概念之后,就可以写代码了,深度优先就是从某一个点(orig)开始,以该结点为前驱,按照结点集合中的顺序开始查找前驱结点a(orig)的后原创 2021-05-15 16:52:57 · 546 阅读 · 0 评论 -
java之hashTab
java之哈希表哈希表的用法文章内容选自尚硅谷数据结构和算法,jdk11,eclipse环境哈希表的用法哈希表是一个链表数组,首先创建一个数组,数组的每一个元素都是链表的头结点,这儿链表的头结点直接存放第一个节点,而不是像之前的单链表一样,头结点指向第一个节点。哈希表的存放顺序是按照每一个节点的关键码值(key value),节点的关键码值决定该节点存放在哪一个链表中。哈希表单独作为一个对象(HashTab),当对哈希表作增删改查的时候,直接调用哈希表内的增删改查方法即可。要实现这一步,需要先创原创 2021-05-06 10:48:23 · 284 阅读 · 0 评论 -
java之递归解决八皇后问题
八皇后问题问题剖析示例代码文章内容选自尚硅谷,jdk8,eclipse环境问题剖析解决八皇后问题需要创立一个8×8的棋盘,但是这儿可以用一个有八个元素的一维数组来解决数组的标号代表着行,数组每个元素的值代表着对应的列。解决该问题的思路有,首先得设立一个判断列是否冲突的函数judge(int n),该函数的形参为传入的行数,即判断前几行与该行的值(该值即为列的位置)是否冲突。然后还有一个递归的函数check(int n),形参依然为行数。该函数用于进行递归,里面有一个for循环,把judge(i原创 2021-04-10 09:32:37 · 567 阅读 · 0 评论 -
java之迷宫问题
java之迷宫问题java解决迷宫问题的注意事项代码文章内容选自尚硅谷,jdk8,eclipse环境java解决迷宫问题的注意事项java在执行递归方法的时候,在栈空间中开辟了一块内存,当递归方法调用自己的时候,在栈空间中开辟另外一块内存递归方法必须有出口,不然会发生栈溢出错误递归方法的参数是相互独立的,但如果递归方法的参数是引用数据类型,则递归方法共享该数据类型的地址。递归方法在回溯的时候,可以分两种情况,第一种是递归方法执行完毕,第二种是遇到了return,返回相应的值。图片选自尚硅原创 2021-04-08 21:11:30 · 457 阅读 · 0 评论 -
java之栈的实现
java之栈的实现栈的实现java栈实现综合计算器(四则运算)文章内容选自尚硅谷,jdk8,eclipse环境栈的实现代码如下package stack;import java.util.Scanner;public class ArrayStackDemo { public static void main(String[] args) { ArrayStack stack = new ArrayStack(5); Scanner scanner = new Scanner(S原创 2021-04-06 09:21:29 · 162 阅读 · 0 评论 -
java之单链表解决约瑟夫问题
java之单链表解决约瑟夫问题文章内容选自尚硅谷,jdk8,eclipse环境所谓约瑟夫问题就是丢手绢游戏,一个带编号环形列表,从某处开始重复报数,假如报到n的人必须退出列表,求最后退出列表的人是原来环形列表的第几号。解决约瑟夫问题分两步,第一步是环形列表的创建,第二步是报数n的人出列表。上图是尚硅谷的图。着重说明一下第二步的步骤,首先让first指针指向环形列表第一个元素(环形列表是分首尾的),让helper指针指向first前一个元素。然后把first定位到第一个报数的人(编号为k)的位原创 2021-03-28 17:37:14 · 349 阅读 · 0 评论 -
java之双向链表
java之双向链表双向链表就是每一个节点不仅有一个next属性指向下一个节点,还有一个pre属性指向前一个节点。这样的话,在修改代码的时候,仅需在节点类中添加一个pre的属性,在链表类的方法中,如果要对节点作增删改,使得节点的pre属性指向前一个节点的位置即可。区别于单链表,双向链表在作对节点的删除的时候,可以不使用tmp指向待删除节点的前一个位置,直接使用tmp指向待删除节点。总体代码如下package linkedlist;public class DoubleLinkedListDemo原创 2021-03-28 17:19:19 · 237 阅读 · 0 评论 -
java之单链表
java之单链表按照插入顺序的单链表文章内容选自尚硅谷数据结构和算法,jdk8,eclipse环境按照插入顺序的单链表package linkedlist;public class SingleLinkedListDemo { public static void main(String[] args) { HeroNode hero1 = new HeroNode(1,"宋江","及时雨"); HeroNode hero2 = new HeroNode(2,"卢俊义","玉麒麟");原创 2021-03-22 14:13:51 · 290 阅读 · 0 评论 -
java队列
java之队列非循环队列循环队列文章内容选自尚硅谷数据结构与算法,jdk8,eclipse环境非循环队列创建一个数组长度为3的队列,front指向队列第一个元素的前一个位置,rear表示指向队列最后一个位置。代码如下package com.atguigu;import java.util.Scanner;import javax.management.RuntimeErrorException;public class ArrayQueueDemo { public static vo原创 2021-03-21 15:01:47 · 122 阅读 · 0 评论