数据结构Java
使用Java简单实现常用的数据结构
小黄花er
这个作者很懒,什么都没留下…
展开
-
哈夫曼树的简单实现(Java)
1.定义节点package haffman;public class Node implements Comparable<Node>{ public int val; // 权值 public Node left; public Node right; public Node(int val) { this.val = val; } @Override public String toString()原创 2021-12-12 15:16:47 · 426 阅读 · 0 评论 -
中序线索二叉树的简单实现(Java)
二叉树的代码稍微有点抽象,并且运用了递归,猛一看会有点难以理解,建议在了解理论知识的前提下,在草稿纸上画一个二叉树,结合代码实现线索二叉树。1.定义结点package tree.cluetree;public class Node { private int no; private String name; private Node left; private Node right; // 0表示左子树 1表示前驱结点 private原创 2021-12-11 15:25:56 · 662 阅读 · 0 评论 -
顺序存储二叉树前序遍历简单实现(Java)
二叉树的顺序存储就是用一组连续的存储单元(数组)存放二叉树的节点元素,一般按照二叉树节点自上而下、自左向右的顺序存储。package tree;public class ArrayTree { private int[] arrays; public ArrayTree(int[] arrays) { this.arrays = arrays; } /** * 前序遍历 */ public void preList(i原创 2021-12-10 22:18:54 · 568 阅读 · 0 评论 -
二叉树的简单实现(Java)
此文简单实现了二叉树的前中后序遍历、前中后序遍历查找以及删除节点。1.定义节点package tree;import spares.SparesArray;public class Node { private int no; private String name; private Node left; private Node right; @Override public String toString() { re原创 2021-12-10 20:21:06 · 631 阅读 · 0 评论 -
哈希查找链地址法的简单实现(Java)
1.定义节点package hash;public class Student { /** * 学生节点类 */ // 为了方便操作,修饰符全写为pubilc public int id; public String name; // 指向下一个节点的指针 public Student next; public Student(int id, String name) { this.id = id;原创 2021-12-09 20:38:14 · 1004 阅读 · 0 评论 -
斐波那契查找(Java)
package search;import java.util.Arrays;public class FibSerch { public static void main(String[] args) { // 数组一定要有序 int[] array = {1,2,3,4,5,6,7,8,9}; System.out.println(fibSerch(array, 9)); } // 获取斐波那契数列 public.原创 2021-12-09 16:43:30 · 93 阅读 · 0 评论 -
插值查找(Java)
package search;import static java.lang.Math.max;import static java.lang.Math.min;public class InsertSearch { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5, 6, 7, 8}; // 适合分布均匀的数据 insertSearch(3, arr.原创 2021-12-09 15:20:46 · 192 阅读 · 0 评论 -
二分查找(Java)
package search;public class ErfenSearch { public static void main(String[] args) { // 二分查找的前提数组必须有序 int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9}; erfenSearch(array, 2); } public static void erfenSearch(int[] a, int n).原创 2021-12-09 14:41:12 · 59 阅读 · 0 评论 -
线性查找(Java)
package search;public class LineatSearch { public static void main(String[] args) { int[] array = {1,2,34,4,5,6,78,8,34,23}; linearSearch(array, 8); } public static void linearSearch(int[] a, int n) { for (int i = 0;.原创 2021-12-09 14:08:07 · 151 阅读 · 0 评论 -
归并排序(Java)
package sort;import java.util.Arrays;public class GbSort { public static void main(String[] args) { int[] array = new int[]{9,8,7,6,5,4,3,2,1}; sort(array,0,array.length-1); System.out.println("排序完成后的代码为.原创 2021-12-08 22:21:51 · 51 阅读 · 0 评论 -
希尔排序(Java)
package sort;import java.util.Arrays;public class ShellSort { public static void main(String[] args) { int[] array = {1,22,41,21,411,5335,51,6,3,2121}; } public static void shellSort(int[] a) { for (int n = a.length / 2; n.原创 2021-12-08 20:06:52 · 67 阅读 · 0 评论 -
插入排序(Java)
package sort;import java.util.Arrays;public class InsertSort { public static void main(String[] args) { int[] array = {11,2,3,4,556,1,222,2222,333,6,74}; insertSort(array); } public static void insertSort(int[] a) { .原创 2021-12-08 19:20:43 · 56 阅读 · 0 评论 -
快速排序(Java)
package sort;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] array = {2,5,1,6,17,22,77,11,63}; quickSort(array, 0, array.length-1); System.out.println(Arrays.toString(array));.原创 2021-12-08 16:56:24 · 169 阅读 · 0 评论 -
选择排序(Java)
package sort;import java.util.Arrays;public class SelectSort { public static void main(String[] args) { int[] array = {1,11,245,2,5,63,62,312,555,1111}; for (int i = 0; i < array.length; i++) { for (int j = i+1; j &.原创 2021-12-08 15:53:09 · 56 阅读 · 0 评论 -
冒泡排序(Java)
package sort;import java.util.Arrays;public class BubblingSort { public static void main(String[] args) { int[] array = {2,5,1,6,17,22,77,11,63}; for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < a.原创 2021-12-08 15:28:39 · 159 阅读 · 0 评论 -
基数排序的简单实现(Java)
package sort;import java.util.Arrays;public class BasicSort { public static void main(String[] args) { int[] arrays = new int[]{53,542,3,63,14,214,154,748,616}; sort(arrays); } public static void sort(int[] arrays) {.原创 2021-12-07 22:33:50 · 238 阅读 · 0 评论 -
递归问题-走迷宫的简单实现(Java)
package diguimigong;public class MazeApp { public static void main(String[] args) { int[][] map = new int[8][7]; /** * 设置第一行和最后一行为墙,设置为 1 */ for(int i=0;i<7;i++){ map[0][i] = 1; .原创 2021-12-07 21:47:29 · 237 阅读 · 0 评论 -
队列的简单实现(Java)
1.初始化队列package queue;public class ArrayQueue { private int[] array; private int maxSize; // 模拟出队指针 private int front; // 模拟入队指针 private int rear; /** * 队列初始化 * @param maxSize */ public ArrayQueue(int max原创 2021-12-07 20:41:12 · 586 阅读 · 0 评论 -
双链表的简单实现和测试(Java)
1.初始化节点package linkedlist;public class BookNode { public int id; public String name; public double price; public BookNode pre; public BookNode next; @Override public String toString() { return "BookNode{" +原创 2021-12-04 21:20:12 · 801 阅读 · 0 评论 -
单链表的简单实现和测试(Java)
1.初始化节点package linklist;public class GoodsNode { public int id; public String name; public double price; public GoodsNode next; public GoodsNode(int id, String name, double price) { this.id = id; this.name = name;原创 2021-12-04 16:14:00 · 557 阅读 · 0 评论 -
栈的简单实现以及简单应用(Java)
1.用数组实现简单的栈package stack;/** * 用数组实现栈 */public class ArrayStack { /** * 定义一个数组 */ private int[] stack; // 定义数组长度 private int maxSize; // 定义栈顶指针 private int top = -1; public ArrayStack(int maxSize) {原创 2021-12-02 22:26:33 · 417 阅读 · 0 评论