Java数据结构与算法
记录学习过程
是小李同学呀~
这个作者很懒,什么都没留下…
展开
-
算法:二分查找(java 准确查找,模糊查找)
public static int binarysearch(int[] nums,int target) { int index=-1; int start=0; int end=nums.length-1; while(start<=end) { int mid=(start+end)/2; if(nums[mid]==target) { index=mid; break; } else if(nums[mid]>target)原创 2022-04-15 10:00:12 · 416 阅读 · 0 评论 -
Java 数据结构 二叉树 遍历 查找 删除
节点:package com.m.demo10;public class Node { public int id; public String name; public Node left; public Node right; public Node(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "Nod原创 2022-04-12 11:01:27 · 780 阅读 · 0 评论 -
java数据结构哈希表
增删查操作Emp类package com.m.demo9;public class Emp { public int id; public String name; public Emp next; public Emp(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "Emp [id=" + id + ", nam原创 2022-04-11 19:45:39 · 869 阅读 · 0 评论 -
递归之八皇后问题
package com.m.demo7;public class Quene8 { /** * 8行8列,每2个不能在同一行 同一列 同一斜线 * 因为不能在同一行,使用一维数组,直接表示列 * 同一列判断:数组值不同 * 同一斜线判断:等腰直角三角形 * * @param args */ static int maxsize=8; static int[] array=new int[maxsize]; // 打印数组 public static void原创 2022-04-10 14:38:02 · 278 阅读 · 0 评论 -
递归之迷宫问题
package com.m.demo7;public class maze { /** * 0表示没有走过,1表示墙壁,2表示可以走,3表示不能走 * 首先建立地图,设置起点和终点,使用递归不断回溯确定点能不能走通 * @param args */ public static void main(String[] args) { int [][] map=new int[8][7];// 左右 上下是墙 for(int i=0;i<8;i++) { map[i原创 2022-04-10 14:36:50 · 160 阅读 · 0 评论 -
栈实现:多位整数带括号中缀转后缀,逆波兰计算器
package com.m.demo6;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Stack;public class nPolandCounter { public static void main(String[] args) {// 中缀表达式转后缀表达式// String str="1+((2+3)*4)-5";//1 2 3 + 4原创 2022-04-09 20:26:55 · 88 阅读 · 0 评论 -
用栈实现多位数综合计算器(位数不限)
在跟着韩老师学习数据结构,在栈这一章中,有个综合计算器,觉得老师的代码可以再稍微优化一下。我用到了集合,先将运算字符串做了转换,这样计算就不会被数字的位数限制了。代码如下,请多指教。创建栈package com.m.demo6;import java.util.Arrays;public class ArrayStack { private int maxsize; private int [] array; private int top; public ArrayStack(int原创 2022-04-09 14:54:14 · 3246 阅读 · 0 评论 -
Josephu报数问题
Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。创建节点package com.m.demo5;public class Node { public int id; public Node next; public Node(int id) { this.id = id; }原创 2022-04-08 16:53:44 · 297 阅读 · 0 评论 -
双向链表按顺序添加元素
package com.m.demo4;public class doubleNode { public int id; public String name; public doubleNode next; public doubleNode pre; public doubleNode(int id, String name) { this.id = id; this.name = name; } @Override public String toString() {原创 2022-04-08 11:55:19 · 939 阅读 · 0 评论 -
java 单链表练习题
单链表的常见面试题有如下:求单链表中有效节点的个数查找单链表中的倒数第k个结点 【新浪面试题】单链表的反转【腾讯面试题,有点难度】从尾到头打印单链表 【百度,要求方式1:反向遍历 。 方式2:Stack栈】合并两个有序的单链表,合并之后的链表依然有序【课后练习.】package com.m.demo4;import java.util.Stack;public class linkedList { /** * 求单链表中有效节点的个数 * 查找单链表中的倒数第k个结点原创 2022-04-07 20:14:59 · 555 阅读 · 0 评论 -
数据结构之单链表(Linked List)
链表概述链表是有序的列表,但是它在内存中是存储如下小结:链表是以节点的方式来存储,是链式存储每个节点包含 data 域, next 域:指向下一个节点.如图:发现链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表(带头结点) 逻辑结构示意图如下链表增删改查创建一个链表,实现添加人物信息等操作package com.m.demo4;public class singleLinkedList {// 创建一个头节点 Node原创 2022-04-07 14:21:06 · 909 阅读 · 0 评论 -
数据结构之队列
概述队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front会随着数据输出而改变,而 rear则是随着数据输入而改变数组模拟队列当我们将数据存入队列时称为”ad原创 2022-04-06 21:46:40 · 283 阅读 · 0 评论 -
数据结构概述&稀疏数组
数据结构包括:线性结构和非线性结构。线性结构线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈非线性结构非线性结构包括:二维数组,多维数组,广义表,树结构,图结构稀疏数组值的元素的行列及值记录在一个小规模的数组中,从原创 2022-04-06 15:32:44 · 440 阅读 · 0 评论