Java数据结构
基础数据结构的学习。包括顺序表和单链表、栈和队列、二叉树、七大排序等。
IUDN
这个作者很懒,什么都没留下…
展开
-
AVL
AVL树的旋转原创 2020-06-02 18:56:12 · 166 阅读 · 0 评论 -
优先级队列(堆)
1.队列的几种类型 2.二叉树的顺序存储 3.堆 3.1概念 3.2向下调整 3.3建堆 3.堆的应用-优先级队列 3.1模拟实现优先级队列 3.2java 中的优先级队列 4.堆的其他应用-TopK 问题 5.堆的其他应用-堆排序原创 2020-04-06 20:48:55 · 351 阅读 · 0 评论 -
二叉树_完全二叉树的判定
1.判断一颗树是不是完全二叉树 思路解析 程序测试2.完全二叉树应用原创 2020-04-01 19:23:22 · 203 阅读 · 0 评论 -
编程题汇总_Map和Set
1.只出现一次的数字升级版:只出现一次的数字2.坏键盘打字3.前K个高频单词原创 2019-10-15 17:34:47 · 189 阅读 · 0 评论 -
编程题汇总_Map和Set
1.复制带随机指针的链表解法1:直接复制解法2:利用Map2.宝石和石头程序测试:利用Set原创 2019-10-14 19:59:22 · 130 阅读 · 0 评论 -
Java--二叉搜索树2(K-V模型)
二叉搜索树(K-V)1.K-V模型2.实例:通讯录原创 2019-10-14 14:12:48 · 201 阅读 · 0 评论 -
Java--二叉搜索树1(概念)
1.搜索树模型2.搜索树2.1概念2.2查找2.3插入2.4删除3.纯K模型4.K-V模型5.补充原创 2019-10-12 21:01:48 · 126 阅读 · 0 评论 -
哈希
1.哈希表雏形2.哈希冲突2.1冲突解决:闭散列2.2冲突解决:开散列/哈希桶(常用)2.3负载因子2.4哈希冲突可以避免吗?2.5冲突严重时的解决办法3.实现3.1程序设计(简单版本)3.2实现哈希的注意事项3.3比较两种重要的搜索数据结构3.4哈希和 java 类集的关系?3.4hash源码4.标准库中的哈希相关问题4.1能否使用任何类作为 Map 的 key?4.2为什么HashMap中String、Integer这样的包装类适合作为K?4.3如果使用Object作为H原创 2019-11-29 18:08:25 · 199 阅读 · 0 评论 -
七大排序对比
思维导图类比排序思想原创 2020-02-15 20:45:38 · 80 阅读 · 0 评论 -
排序4_归并排序
1.归并排序适合场景2.归并排序(稳定)程序测试:递归版本程序测试:非递归版本3.海量数据的排序问题原创 2019-10-07 18:34:35 · 474 阅读 · 0 评论 -
排序3_快排
快排(不稳定)1.递归1.1 hoare法—partition(常用)1.2 挖坑法—partition1.3 前后遍历法—partition1.4 快排注意事项快排完整代码:递归版2.非递归3.快排优化3.1优化基准值3.2小区间使用插排3.3大区间使用堆排原创 2019-10-07 17:43:13 · 268 阅读 · 0 评论 -
排序2_冒泡、堆排序
1.冒泡(稳定)1.1 程序测试1.2 比较:插入、选择、冒泡排序2.堆排序(不稳定)2.1 建大堆步骤2.2 向下调整步骤2.3 程序测试原创 2019-10-07 15:10:05 · 88 阅读 · 0 评论 -
排序1_插入、希尔、选择排序
1.直接插入排序(稳定)注意2.希尔排序(不稳定)注意3.直接选择排序(不稳定)注意双向选择排序原创 2019-09-26 17:15:27 · 84 阅读 · 0 评论 -
二叉树_层次遍历
1.普通层次遍历/广度优先遍历(栈)2.层次遍历,并返回层数3.OJ题目:二叉树的层次遍历原创 2019-09-21 21:19:13 · 159 阅读 · 0 评论 -
二叉树OJ题_二叉树的构建和遍历 + 根据二叉树创建子字符串
1.二叉树的构建及遍历2.根据二叉树创建字符串原创 2019-09-21 20:04:26 · 166 阅读 · 0 评论 -
二叉树_查找与还原
1.二叉树常用四种查找方法2.还原二叉树2.1已知前序+中序 或 中序+后序2.2只有前序(带空结点)遍历创建二叉树原创 2019-09-18 21:11:32 · 201 阅读 · 0 评论 -
二叉树_编程题汇总
1.判断两颗树是不是相同的二叉树2.另一棵树的子树3. 二叉树最大深度4. 判断一颗二叉树是否是平衡二叉树5. 对称二叉树原创 2019-09-18 19:41:02 · 387 阅读 · 0 评论 -
二叉树_基础操作
1.二叉树前中后序遍历(递归)2.二叉树层次遍历3.计算所有节点个数4.计算叶子节点个数5.计算第K层节点个数6.在二叉树中查找指定元素原创 2020-03-27 21:32:17 · 121 阅读 · 0 评论 -
Java--链表练习
1.以定值x为基准将链表分割(partition)成两部分,所有小于x的结点排在大于等于x结点之前。注意:分割后保持原链表数据顺序不变。public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }public cla...原创 2019-09-08 17:03:01 · 136 阅读 · 0 评论 -
Java--单链表易混淆知识点
对于p/p=q/p=q.next/p.next=q.next在链表中引用如何指向的?定义:Node p = ……;//a结点对象Node q = ……;//x节点对象抓住一点:等号右边是值,等号左边相当于位置(框),右边赋值给左边。...原创 2019-07-26 16:21:28 · 130 阅读 · 0 评论 -
Java--双向链表
双向链表也是链表的一种,特殊性在于:它对比单链表多了一个指向前驱(prev)的引用。注意:head----指向链表的第一个结点last------指向链表最后一个结点size------当前链表结点个数 class Node { int val; Node next = null; // 指向后继结点,最后一个结点的 next == null Node ...原创 2019-07-29 16:56:08 · 89 阅读 · 0 评论 -
Java--逆置链表
思路:不断从原来链表中取出结点,头插到一个新的链表上分析:1)新定义一个新链表,而且是空链表Node result = null;//result新链表的第一个结点的引用2)遍历原来的链表Node cur = head;while(cur!=null){ cur=cur.next }3)把每个遍历的结点(cur),头插到新链表(result)中cur.next=result; re...原创 2019-07-24 16:19:27 · 215 阅读 · 0 评论 -
Java--单链表的插入与删除
1.链表----逻辑上相邻,物理上不一定。2.链表为空head==null;3.头插1)定义一个节点的引用Node node = new Node(); node.value=0;2)让原来的第一个结点成为新结点的下一个结点 node.next=head;3)使head指向第一个结点 head=node;4.尾插(分两种情况–空链表、非空链表)...原创 2019-07-24 17:37:42 · 167 阅读 · 0 评论 -
Java--顺序表删除(删除所有出现的值)
思路:没有遇到element,赋值arra[j]=arrayt[i],i++,j++同步变化;遇到element,i++,j不变;之后没有遇到element,赋值arra[j]=arrayt[i],i++,j++;后续重复上述过程。for(i=0;i<size;i++){if(array[i] != element)arrau[j++]=array[i++];}int j = 0...原创 2019-07-24 17:19:45 · 1233 阅读 · 0 评论 -
Java--顺序表插入与删除
注意: 明确循环起点与终点对于顺序表,插入数据依次后移(从后向前);删除数据依次前移(从前往后)》》 对于空间不够的情况,进行扩容。`》》 对数据合法性进行效验// 顺序表的元素类型 intpublic class MyArrayList { // 属性是什么 private int[] array; // 代表的是存在数据的数组 // array.len...原创 2019-07-23 15:54:48 · 2322 阅读 · 1 评论