}
return arrar[size - 1];
}
}
//链表
class MyStack2 {
static class Node {
public int val;
public Node next;
public Node(int val) {
this.val = val;
}
}
private Node head;
public void push(int value) {
Node find = new Node(value);
if(this.head == null) {
this.head = find;
return;
}
find.next = this.head;
this.head = find;
}
public Integer pop() {
if(this.head == null) {
return null;
}
Node find = this.head;
this.head = this.head.next;
return find.val;
}
public Integer peek() {
if(this.head == null) {
return null;
}
return this.head.val;
}
}
**2. 队列(Queue)
概念
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)
实现:
队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上
出数据,效率会比较低。**
/**
- queue
*/
//链表
public class MyQueue {
static class Node {
public int vla;
public Node next;
public Node(int vla) {
this.vla = vla;
}
}
private Node haed = new Node(-1);
private Node tail = haed;
public void offer(int value) {
tail.next = new Node(value);
tail = tail.next;
}
public Integer poll() {
Node delete = this.haed.next;
if(delete == null) {
this.tail = this.haed;
return null;
}
this.haed.next = delete.next;
return delete.vla;
}
public Integer peek() {
if(this.haed.next == null) {
return null;
}
return this.haed.next.vla;
}
}
//顺序表
class MyQueue2 {
private int[] array = new int[100];
private int head = 0;
private int tail = 0;
private int size = 0;
public boolean offer(int value) {
if(size == array.length) {
return false;
}
array[tail] = value;
tail ++;
if(tail >= array.length) {
tail = 0;
}
//tail = tail % array.length;
size ++;
return true;
}
public Integer poll() {
if(size == 0) {
return null;
}
int ret = array[head];
head ++;
if(head >= array.length) {
head = 0;
}
size --;
return ret;
}
public Integer peek() {
if(size == 0) {
return null;
}
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
78)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!