数据结构 - java - 栈

devtools/2024/11/15 6:15:02/

文章目录

      • 链表实现
      • 数组实现

链表实现

java">public class MYStack <E> implements Iterable<E>{private int size=0;private int capacity = Integer.MAX_VALUE;private Node<E> head;@Overridepublic Iterator<E> iterator() {return new Iterator<E>() {Node<E> p = head.next;@Overridepublic boolean hasNext() {return p!=null;}@Overridepublic E next() {E val = p.val;p= p.next;return val;}};}private static class Node<E>{E val;Node<E> next;public Node(E val, Node<E> next) {this.val = val;this.next = next;}}public MYStack(int capacity) {head=new Node<>(null,null);this.capacity = capacity;}public MYStack() {head=new Node<>(null,null);}public boolean push(E val){if (isFull())return false;head.next  = new Node<>(val, head.next);size++;return true;}public E pop(){if (isEmpty()) return null;Node<E> top = head.next;head.next=top.next;size--;return top.val;}public E peek(){if (isEmpty())return null;return head.next.val;}public  boolean isEmpty(){return size==0;}public boolean isFull(){return size == capacity;}
}

数组实现

java">
public class MYStack2<E> implements Iterable<E>{private E[] array;private int top;private int capacity = 10;public MYStack2(int capacity) {this.capacity = capacity;array = (E[]) new Object[capacity];}public MYStack2() {array = (E[]) new Object[capacity];}@Overridepublic Iterator<E> iterator() {return new Iterator<E>() {int p = top;@Overridepublic boolean hasNext() {return p>0;}@Overridepublic E next() {return array[--p];}};}public boolean push(E val){if (isFull())return false;array[top++]=val;return true;}public E pop(){if (isEmpty()) return null;return array[top--];}public E peek(){if (isEmpty())return null;return array[top];}public  boolean isEmpty(){return top==0;}public boolean isFull(){return top == capacity;}
}

http://www.ppmy.cn/devtools/22147.html

相关文章

安装VMware后的相关配置

一、创建完虚拟机后 看看虚拟机设置里面的DVD&#xff1b;有没有自动检测到 二、打开虚拟机后 一直点击继续3、完成后进行重新下载VM——tools 来进行跨机子的复制粘贴&#xff0c;和屏幕大小的自适应注意:如果安装不了tools是灰色的 点开虚拟机设置——两个光盘都选用物理驱…

苍穹外卖绕过微信支付

经过以下改动可实现&#xff1a; 1、不用微信支付端口 2、弹出支付成功的界面 3、数据库修改支付成功后的数据 #在OrderServiceImpl.java里加入Autowiredprivate OrderService orderService; #在OrderServiceImpl.java里的payment函数做以下改动 #图片里有&#xff0c;红色为原…

Nacos和Eureka有什么区别!!!

一致性模型&#xff1a; Eureka&#xff1a;采用的是 AP&#xff08;Availability, Partition Tolerance&#xff09;模型&#xff0c;即在面临网络分区或部分节点故障时优先保证系统的可用性&#xff0c;牺牲一定的数据一致性。Eureka 通过自我保护机制&#xff0c;允许在节点…

Git 核心概念与实操

这里写目录标题 1 版本回退2 工作区、暂存区、本地仓库、远程仓库3 分支合并3.1 Fast-forward3.2 Recursive3.3 Ours & Theirs 4 处理冲突5 git stash 存储工作区 参考&#xff1a;https://www.liaoxuefeng.com/wiki/896043488029600 1 版本回退 原文链接&#xff1a;http…

制糖工业智能工厂数字孪生可视化平台,推进制糖产业数字化转型

制糖工业智能工厂数字孪生可视化平台&#xff0c;推进制糖产业数字化转型。随着信息技术的快速发展&#xff0c;数字化转型已成为各行各业的重要趋势。在糖果加工制造领域&#xff0c;智能工厂数字孪生可视化平台的出现&#xff0c;为行业数字化转型注入了新的活力。 糖果加工制…

栈和队列--C语言实现

栈的概念及结构 进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底 **压栈&#xff1a;**栈的插入操作叫做进栈/压栈/入栈&#xff0c;入数据在栈顶 **出栈&#xff1a;**栈的删除操作叫做出栈。出数据也在栈顶 栈的实现 链表实现 #include <stdio.h>…

12.Ribbon饥饿加载

Ribbon默认是懒加载的&#xff0c;第一次使用Ribbon访问的时候才会去实例化对象&#xff0c;所以第一次访问比较耗时。 ribbon:eager-load:enabled: true # 开启饥饿加载clients: user-service #对user-service这个服务饥饿加载 多个微服务的写法&#xff1a; ribbon:eager-loa…

论文笔记:Large Language Models Are Zero-Shot Time Series Forecasters

2023 neurips 完全是零样本&#xff08;zero-shot&#xff09;的&#xff0c;不需要微调 1 方法 1.1 Tokenization&#xff08;分词和编码&#xff09; 现有的LLM&#xff08;比如GPT3&#xff09;的tokenizer不能直接用来编码时间序列的句子 比如对数字42235630&#xff0…