class LinkedStack<T> {
private Node top;
private int size; /**
* 初始化栈
*/
public LinkedStack() {
top = null;
size = 0;
} /**
* 判断栈是否为空
*
* @return
*/
public boolean isEmpty() {
return size == 0;
} /**
* 清空栈元素
*/
public void clear() {
top = null;
size = 0;
} /**
* 获取栈的大小
*
* @return
*/
public int length() {
return size;
} /**
* 将一个数据入栈
*
* @param data
* @return
*/
public boolean push(T data) {
Node node = new Node(data);
node.pre = top;
top = node;
size++;
return true;
} /**
* 将数据出栈,并删除
*
* @return
*/
public T pop() {
if (top != null) {
Node node = top;
top = top.pre;
size--;
return node.data;
}
return null;
} /**
* 获取栈顶元素,但不删除该栈元素数据
*
* @return
*/
public T peek() {
if (top != null) {
return top.data;
}
return null;
} /**
* 节点类
*
* @author John
*
*/
private class Node {
Node pre;
T data; public Node(T data) {
this.data = data;
}
}
}

Java通过链表实现栈的更多相关文章

  1. Java之链表实现栈结构

    package com.wzlove.stack; import java.util.Iterator; import java.util.NoSuchElementException; /** * ...

  2. Java用链表实现栈和队列

    1.用链表实现栈 package stack; /** * * @author denghb * */ class Link { public long dData; public Link next ...

  3. Java 用链表实现栈和队列

    栈 是一种基于后进先出(LIFO)策略的集合类型.当邮件在桌上放成一叠时,就能用栈来表示.新邮件会放在最上面,当你要看邮件时,会一封一封从上到下阅读.栈的顶部称为栈顶,所有操作都在栈顶完成. 前面提到 ...

  4. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

  5. java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表

    java实现 数据结构:链表. 栈. 队列.优先级队列.哈希表   数据结构javavector工作importlist 最近在准备找工作的事情,就复习了一下java.翻了一下书和网上的教材,发现虽然 ...

  6. java实现顺序表、链表、栈 (x)->{持续更新}

    1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ...

  7. 数据结构 1 线性表详解 链表、 栈 、 队列 结合JAVA 详解

    前言 其实在学习数据结构之前,我也是从来都没了解过这门课,但是随着工作的慢慢深入,之前学习的东西实在是不够用,并且太皮毛了.太浅,只是懂得一些浅层的,我知道这个东西怎么用,但是要优化.或者是解析,就不 ...

  8. Java数据结构——用链表实现栈

    //================================================= // File Name : LinkStack_demo //---------------- ...

  9. 基于链表的栈(Java)

    package com.rao.linkList; /** * @author Srao * @className LinkedStack * @date 2019/12/3 13:59 * @pac ...

随机推荐

  1. 如何改变Myeclipse编辑区背景色(转)

    编辑窗口右键单击-->Preferences-->General加号-->Editors加号-->点Text Editors字样-->右下窗口选Backgroud col ...

  2. git命令中带有特殊符号如@

    使用带用户密码clone的方式:git clone https://username:password@remote 当username和password中含有特殊符号会导致出错,因为为http的请求 ...

  3. java关于jdbc的配置与使用步骤

    1.下载一个jdbc的jar包 2.在eclipse的项目名右键-new-folder 创建一个文件夹lib 3.将jar包拖到此文件夹中,在此jar包右键build path--add to pat ...

  4. Python初学——多进程Multiprocessing

    1.1 什么是 Multiprocessing 多线程在同一时间只能处理一个任务. 可把任务平均分配给每个核,而每个核具有自己的运算空间. 1.2 添加进程 Process 与线程类似,如下所示,但是 ...

  5. python+selenium自动化软件测试(第4章):场景判断与封装

    4.1 显示等待WebDriverWait 前言:在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种隐式等待在一定程度上节省了很多时间.但是一旦页面上某些j ...

  6. ASM的备份集在文件系统上恢复测试

    背景:最近时常有客户咨询这类问题,其实很简单一个操作,但由于每个人的理解差异,也容易出现各种问题或者误解,本文主要总结下这个过程以及常遇到的问题处理. 环境:Site A(Oracle RAC 11. ...

  7. 短视频服务大PK,阿里云、腾讯云、又拍云、七牛云、金山云5强横向对比

    继直播后,短视频又再次爆发,在这个风口,国内的各大云厂商也都相继推出了自己的一站式短视频解决方案.上周由于公司短视频功能开发的需要,对比了阿里云.腾讯云.又拍云.七牛云.金山云5家的短视频服务. 先介 ...

  8. HDMI转EDP芯片NCS8803简介

    NCS8803 HDMI-to-eDP w/ Scaler Features --Embedded-DisplayPort (eDP) Output 1/2/4-lane eDP @ 1.62/2.7 ...

  9. mac系统webstorm快捷键

    WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为"Web前端开发神器"."最强大的HTML5编辑器". ...

  10. ubuntu16.04下源码安装onos1.0.2

    由于工作需要,下载安装onos1.0.2的版本,大家看需求可以下载安装更高级的版本 参考链接:http://www.sdnlab.com/14650.html 1.系统环境 Ubuntu16.04 L ...