Java数据结构与算法
学习笔记,和算法小技巧不同,主要是整体的介绍
影龙武
加油呀ヾ(◍°∇°◍)ノ゙
展开
-
java位运算的奇巧淫技相关算法题目详解
java位运算的奇巧淫技相关算法题目详解涉及知识点见博客:位相关算法题目1-1000这1000个数放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?思路: 使用多次异或可以实现去重例如:按照题意,假设现在有ABCD四个字母放在5个元素的数组中,假设数组是ACCBD,我们把数组的元素互相异或,即A^C^C^B^D,然后再紧接着异或一遍ABCD,即A^C^C^B^D^A^B^C^D,原创 2020-09-21 19:50:32 · 237 阅读 · 0 评论 -
java位运算的奇巧淫技
位运算基础知识在处理整形数值时,可以直接对组成整形数值的各个位进行操作。位运算符:&(与) |(或) ^(异或) ~(非/取反)>>将二进制位右移操作 <<将二进制位左移操作>>>用0填充高位 >>用符号填充高位,没有<<<运算符对于int型,1<<35与1<<3是相同的(因为int只有32位),而左边的操作数是long型时需对右侧操作数模64ab~aa&ba|b原创 2020-09-21 19:50:08 · 272 阅读 · 0 评论 -
Java实现编译原理词法分析
Java实现编译原理词法分析题目前提条件输入终止条件字符#表示输入终止变量命名规则变量名只能为字母、数字、下划线的组合,且只能以字母或下划线开头考虑可能出现的不规范输入变量赋值没有用空格隔开,如x:=9; 或 x :=9;规范输入应该是x := 9;思路代码...原创 2020-04-08 12:35:11 · 379 阅读 · 0 评论 -
Java使用链表(无虚拟头结点,有尾节点)实现队列
Java使用链表(无虚拟头结点,有尾节点)实现队列接口interface Queue<E>public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e);//入队 E dequeue();//出队 E getFront();//获得队首元素}使用链表实现...原创 2020-04-05 23:00:58 · 359 阅读 · 0 评论 -
Java使用链表(带虚拟头结点)实现栈
Java使用链表实现栈接口interface Stack<E>/** * @author yinglongwu */public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e);//入栈 E pop();//出栈 E peek();//查看栈顶元素}...原创 2020-04-05 20:56:26 · 234 阅读 · 0 评论 -
Java实现链表(带虚拟头结点链表的完善)
Java实现链表(带虚拟头结点链表的完善)原创 2020-04-05 20:29:36 · 437 阅读 · 0 评论 -
Java实现链表(带虚拟头结点)
Java实现链表(带虚拟头结点)为了实现插入位置不同时,代码逻辑一致,可以设置虚拟头结点/** * @author yinglongwu *///带虚拟头结点的链表public class LinkedList<E> { //定义链表的节点类 private class Node{ public E e;//存放这个节点的元素 public Node nex...原创 2020-04-05 18:52:22 · 774 阅读 · 1 评论 -
Java实现链表(无虚拟头结点)
Java实现链表(无虚拟头结点)/** * @author yinglongwu */public class LinkedList<E> { //定义链表的节点类 private class Node{ public E e;//存放这个节点的元素 public Node next;//这个节点指向的下一个节点 private Node(E e, N...原创 2020-04-05 18:39:04 · 312 阅读 · 0 评论 -
Java实现循环队列(可以自动扩容)
Java实现循环队列(可以自动扩容)先声明接口interface Queue<E>//适用泛型public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e);//入队 E dequeue();//出队 E getFront();//获得队首元素}clas...原创 2020-04-04 22:51:03 · 840 阅读 · 0 评论 -
Java实现队列(通过自定义数组实现,可以自动扩容)
Java实现队列(可以自动扩容)先声明接口interface Queue<E>//适用泛型public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e);//入队 E dequeue();//出队 E getFront();//获得队首元素}class ...原创 2020-03-31 22:48:54 · 934 阅读 · 0 评论 -
Java实现一个栈(通过自定义数组实现,可以自动扩容)
Java实现一个栈(可以自动扩容)先声明接口interface Stack<E>/** * @author yinglongwu */ //适用泛型public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e);//入栈 E pop();//出栈 E peek...原创 2020-03-29 19:27:53 · 716 阅读 · 0 评论 -
Java封装一个自己的数组类(可以自动扩容)
Java封装一个自己的数组类(可以自动扩容)封装的数组类class Array<E>/** * @author yinglongwu *///封装一个自己的数组//泛型<E>,表明可以存放E类型的数据,至于E是什么,可以自己定义//Array<Integer> arr = new Array<这里可以写Integer也可以不写>(20)...原创 2020-03-29 18:21:05 · 744 阅读 · 0 评论