
java数据结构
毕业有1000个offer
梦想成为大厂程序猿
展开
-
java红黑树手写
特点节点颜色有红色和黑色根节点必为黑色所有叶子节点都是黑色不会有连续的红色节点代码package tree.rbt;/** * @ClassName RBTree * @Description 红黑树 * @Author guobenqi * @Date 2021/8/26 17:04 */public class RBTree <K extends Comparable<K>,V>{ private static final boolean原创 2021-08-26 19:52:11 · 192 阅读 · 0 评论 -
树的遍历和深度优先和广度优先的非递归算法(java)
1. 先序遍历思路:栈,根节点进栈,然后放右节点,再放左节点,完毕后,依次出栈代码 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val原创 2021-08-25 16:34:27 · 251 阅读 · 0 评论 -
归并排序(数组和链表java)
归并排序利用分治和递归的思想,先分,后并java代码public class Tset { public static void main(String[] args) { int[] arr = new int[]{4,6,7,1,2,8,5}; mergeSort(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[原创 2021-08-24 00:37:16 · 132 阅读 · 0 评论 -
链表和数组的快速排序
思路确定pivot指向最左边位置,确定两个指针,p,q都指向最左边的下一个位置q指针右移一位,如果判断arr[q]是否比pivot大,如果大,++,如果小,则交换p和q位置这样,一直到头,p和q之间就是比pivot大的元素,p左边就比pivot小,将pivot和p-1位置交换继续递归数组快排public class Tset { public static void main(String[] args) { int[] arr = new int[]{4,6,7,1原创 2021-08-23 21:38:31 · 140 阅读 · 0 评论 -
堆排序算法
堆排序package heapSort;import java.util.Arrays;/** * @ClassName HeapSort * @Description TODO * @Author guobenqi * @Date 2021/8/19 21:04 */public class HeapSort { public static void main(String[] args) { int[] a = {24, 10, 5, 1, 2, 24, 5原创 2021-08-19 23:53:10 · 95 阅读 · 0 评论 -
Java实现24点扑克牌游戏解法
存储结构设计存储结构使用的ArrayList集合存储每张牌的数值和花色。后期存储24种四个数的排列组合时用到的是HashMap集合存储24中排列方式主要操作设计首先定义全局变量boolean[]数组来表示扑克牌是否在四次访问过。再定义ArrayList类型的fourCard用来保存四个扑克牌的数。方法如下:(1): createFour(HBox center) 方法是随机生成扑克牌的方法,为每张扑克牌设定没有选过的false标记,然后利用随机函数生成1-52个数,根据此数选择已经命名好的图片。将其原创 2021-03-12 17:57:50 · 822 阅读 · 0 评论 -
Java哈夫曼编码实现数据压缩与解压缩
逻辑结构设计分析可知哈夫曼树是二叉树,所以逻辑结构应该选择树形结构存储结构设计由于要存储二叉树的结点,所以二叉树的链式存储方式。链式存储可以更好的表现出二叉树中各个结点之间的关系,有左孩子,右孩子,和父节点三个指针,这样更加方便查找和遍历。哈夫曼树由HuffmanTreeNode构成,每个结点包括结点的权值,父节点指针域,左右孩子指针域,和存编码的code属性。然后把这些结点通过链表按二叉树关系一个个存储到链表中。主要操作设计DataNode类:用来存储字符及其字符在输入的字符串中出现的原创 2021-03-12 17:52:08 · 405 阅读 · 0 评论 -
java链表实现多项式的运算
逻辑结构设计根据多项式中每个项指数的大小,按顺序排列而得到的线性结构。(其中数据元素存在“一对一关系”,这种一对一的关系在数据结构中通常由数据元素的“前驱”和“后继”方式进行描述和实现,直观上呈现出“线状”特征,也称线性表。)存储结构设计题目多项式存在多个独立且相互关联组成一个多项式的项,结合逻辑结构,可知用链式存储(分散式存储)最为合适。(使用任意可用的地址空间来存放数据元素本身,数据之间逻辑关系通过附加指针显示实现。这里,地址空间“任意”的含义是指计算机随机分配空闲地址,存储的区域可以是不连续的原创 2021-03-12 17:41:57 · 1343 阅读 · 0 评论