当前位置: 首页 > news >正文

算法通关村-----如何基于数组和链表实现栈

实现栈的基本方法

push(T t)元素入栈

T pop() 元素出栈

Tpeek() 查看栈顶元素

boolean isEmpty() 栈是否为空

基于数组实现栈

import java.util.Arrays;public class ArrayStack<T> {private Object[] stack;private int top;public ArrayStack() {this.stack = new Object[10];this.top = 0;}public boolean isEmpty() {return top == 0;}public void expand(int size) {int len = stack.length;if (size > len) {size = size * 3 / 2 + 1;stack = Arrays.copyOf(stack, size);}}public T pop() {T t = null;if (top > 0) {t = (T) stack[top--];}return t;}public void push(T t) {expand(top + 1);stack[top++] = t;}public T peek(){T t = null;if(top >0){t = (T) stack[top-1];}return t;}
}

基于链表实现栈

public class ListStack<T>{class Node<T> {public T t;public Node next;}private Node<T> head;public ListStack() {}public boolean isEmpty() {if(head == null){return true;}return false;}public void push(T t){if(head == null){head = new Node<T>();head.t = t;head.next = null;}Node<T> temp = new Node<T>();temp.t = t;temp.next = head;head = temp;}public T pop() {if(isEmpty()){return null;}T t = head.t;head = head.next;return t;}public T peek(){if(isEmpty()){return null;}T t = head.t;return t;}
}
http://www.lryc.cn/news/146130.html

相关文章:

  • day-05 TCP半关闭 ----- DNS ----- 套接字的选项
  • 区块链金融项目怎么做?
  • Redis与数据库保持一致
  • idea中vue项目 npm安装插件后node modules中找不到
  • 已知两地经纬度,计算两地直线距离
  • 我想开通期权?如何开通期权账户?
  • ChatGPT对软件测试的影响
  • minion在ubuntu上的搭建步骤
  • Leetcode刷题笔记--Hot31-40
  • 【Python】环境配置,【Pytorch】GPU版本安装
  • BEVFusion复现 (Ubuntu RTX3090)
  • Python基础知识学习与回顾
  • SpringBoot笔记——(狂神说)——待续
  • Linux TCP编程流程
  • pyqt5 QuickStart
  • Qt6 for Windows 环境搭建(Visual Studio)
  • 探索未知世界:桌面端3D GIS引领地理信息新时代
  • 微信小程序 趣味学习与益智游戏系统APP
  • 【单片机】UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-WIRE、Ethernet等常见通信方式
  • 【Java从0到1学习】13 Java IO流
  • linux并发服务器 —— 多进程并发(四)
  • 华为云Stack的学习(四)
  • Midjourney 完整版教程(从账号注册到设计应用)
  • 保护香港服务器的方法
  • Redis——》Pipeline
  • Git企业开发控制理论和实操-从入门到深入(六)|多人协作开发
  • 通过 ChatGPT 学习 Python
  • 开发卡牌gamefi游戏需要多少钱?
  • linux服务TCP参数配置
  • 部署Spring Boot项目