数据结构
憾°
这个作者很懒,什么都没留下…
展开
-
java实现并图解二叉搜索树的添加、查找以及删除方法(保姆级教程)
目录二叉搜索树的概念实现二叉搜索树的添加方法实现二叉搜索树的查找方法实现二叉搜索树的删除方法附带java代码二叉搜索树的概念二叉搜索树(二叉排序树):1.首先是一棵二叉树2.其次左子树上所有节点的值都小于根节点的值,右子树上所有节点的值都大于根节点的值。图解:实现二叉搜索树的添加方法先讲解思路,在进行图解,最后实现代码实现二叉搜索树的查找方法先讲解思路,在进行图解,最后实现代码实现二叉搜索树的删除方法先讲解思路,在进行图解,最后实现代码.原创 2022-04-09 18:21:53 · 1799 阅读 · 0 评论 -
Comparable和Comparator接口实现自定义对象排序
目录Comparable接口Comparator接口小疑问:Comparable接口我们现在有一个自定义Person类数组,想让数组中的每一个Person类对象按照年龄从小到大输出。那最简单来说:我们可以写一个冒泡排序,来比较每个对象的年龄从而进行排序。但现在我们可以直接实现Comparable接口中的compareTo()方法即可达到排序//1.COmparable接口class Person implements Comparable<Person>{原创 2022-04-05 11:37:46 · 728 阅读 · 0 评论 -
HashMap和HashSet相关oj题
OJ题地址:136. 只出现一次的数字138. 复制带随机指针的链表771. 宝石与石头牛客:旧键盘打字692. 前K个高频单词目录只出现一次的数字复制带随机指针的链表宝石与石头旧键盘打字前k个高频单词只出现一次的数字题意:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。思路:1.利用HashSet,遍历数组,如果HashSet中未包含该元素则进行添加,若包含该元素就进行移除2.利用异或运算(^),相同为0,原创 2022-04-04 09:35:20 · 592 阅读 · 0 评论 -
java用队列实现栈、用栈实现对队列
目录用队列实现栈用栈实现对队列LeetCode题225. 用队列实现栈232. 用栈实现队列用队列实现栈思路:1.创建两个队列,2.哪个队列不为空就将要push的元素放到该队列中,若都为空就默认放入qu1队列中,3.pop时,将不为空的队列元素放入为空的队列中,并弹出最后一个元素import java.util.LinkedList;import java.util.Queue;class MyStack { //1.创建两个队列 public Q原创 2022-03-21 20:34:25 · 288 阅读 · 0 评论 -
java模拟实现队列(Queue)
目录单链表实现队列(Queue)数组实现循环队列(Queue)622. 设计循环队列LeetCode题单链表实现队列(Queue)/** * 单链表实现队列 */class Node { int val; Node next; public Node(int val){ this.val = val; }}public class MyQueue { public Node front;//对头 public原创 2022-03-20 15:15:05 · 1224 阅读 · 0 评论 -
Stack经典编程题
逆波兰表达式求值(后缀表达式)、括号匹配、出栈入栈次序匹配目录逆波兰表达式求值20. 有效的括号JZ31栈的压入、弹出序列逆波兰表达式求值示例1:输入:tokens = ["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation..原创 2022-03-18 22:53:35 · 378 阅读 · 0 评论 -
源码角度谈论ArrayList的扩容机制
1.若以ArrayList的空构造方法去构造对象,此时ArrayList的默认容量是0,只有在使用add()方法时才会开辟空间,并且空间大小为10。2.在扩容时,ArrayList的长度会以1.5倍进行扩容3.若以ArrayList的带参构造方法去构造对象,此时ArrayList的容量即输入参数的大小, 若输入的参数x > 0,则ArrayList的长度为x 若输入的参数x == 0,则ArrayList的长度为0,并在使用add方法时才会开辟空间,大小为10...原创 2022-03-18 10:16:56 · 1003 阅读 · 0 评论 -
java模拟实现栈(Stack)
简单模拟实现栈(Stack)结构,出栈(pop),入栈(push),查看栈顶元素(peek)....import java.util.Arrays;public class MyStack { int[] elementData; int usedSize; //构造方法 public MyStack() { this.elementData = new int[5]; this.usedSize = 0;//既代表有效长度,又代原创 2022-03-17 09:59:39 · 466 阅读 · 0 评论 -
LinkedList的五种遍历方式
foreach循环,迭代器....原创 2022-03-14 22:00:00 · 4278 阅读 · 1 评论 -
java模拟实现ArrayList
// 新增元素,默认在数组最后新增 public void add(int data) { } // 打印顺序表 public void myToString() { } // 在 pos 位置新增元素 public void add(int pos, int data) { } // 判定是否包含某个元素 public boolean contains(int toFind) { return true; }原创 2022-03-15 18:47:34 · 565 阅读 · 0 评论 -
java模拟实现LinkedList<二>
大体框架:一个Node类,一个LinkedList类(单向、不循环、不头节点的链表)class Node{ private int val;//数据域 private Node next;//指向下一个节点 public Node(int val){//构造方法 this.val = val; }}public class LinkedList {//单向、不循环、无头结点 public Node head;//链表原创 2022-03-14 10:01:34 · 341 阅读 · 0 评论 -
java模拟实现LinkedList<一>
大体框架:一个Node类,一个LinkedList类(单向、不循环、带头节点)class Node{ private int val;//数据域 private Node next;//指向下一个节点 public Node(int val){//构造方法 this.val = val; }}public class LinkedList {//单向、不循环、带头结点 public Node head;//链表的头结点 publi原创 2022-03-13 16:04:55 · 1271 阅读 · 0 评论