package com.company;

public class Main {
//用链表模拟栈
public static void main(String[] args) {
// write your code here
LinkedStake ls = new LinkedStake(4);
ls.push("aa");
ls.push("aB");
ls.push("Ca");
ls.push("Da");

ls.toList();

System.out.println("++++++++++");
ls.pop();
System.out.println("______");

ls.toList();
System.out.println("__ssss____");

}

}
class Node {
public String val;
public Node next;
public Node(String str){
this.val = str;
}
}
class ArrayLinked{
public String val ;

public Node next;
//设置一个头节点
public Node head = new Node("");

public void add(String val){

if(head.next != null){
Node temp = head.next;
head.next = new Node(val);
head.next.next = temp;
}else{
head.next = new Node(val);
}

}
//getLast
public String pop(){
String val = "";
if(head.next != null){
val = head.next.val;
Node temp2 = head.next.next;
head.next = temp2;
}

return val;
}
public void toList(){
Node temp = head;
while(temp.next!= null){

System.out.printf(temp.next.val+"\t");

temp = temp.next;
}
}

}

class LinkedStake{

public ArrayLinked arrayLink = new ArrayLinked();
//设置栈的相关属性
public int top = -1;
public int maxSize;

//初始化
public LinkedStake(int size){
this.maxSize = size;
}
//栈满判断
public boolean isFull(){
return top ==maxSize-1;
}
//栈空判断
public boolean isEmpty(){
return top ==-1;
}
//添加push方法
public void push(String val){
//先判断栈满情况
if(isFull()){
System.out.println("栈满了");
//throw new RuntimeException("栈满了");
}else{
//在链表的头部第一个位置擦插入,因为第一个是最先访问到的
arrayLink.add(val);
top++;
}
}
//取出元素方法
public String pop() {
//先判断栈满情况
String value = "";
if (isEmpty()) {
System.out.println("栈空了");
} else {
//在链表的头部第一个位置擦插入,因为第一个是最先访问到的
top--;
value = arrayLink.pop();
}
return value;
}
public void toList(){
arrayLink.toList();
}

}

java 单链表实现栈的更多相关文章

  1. java 单链表 练习

    练习一下java单链表的简单习题 package com.test1; import java.util.Stack; public class SingleListDemo { /** * 返回单链 ...

  2. Java单链表反转 详细过程

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/guyuealian/article/details/51119499 Java单链表反转 Java实 ...

  3. Java单链表反转图文详解

    Java单链表反转图文详解 最近在回顾链表反转问题中,突然有一些新的发现和收获,特此整理一下,与大家分享 背景回顾 单链表的存储结构如图: 数据域存放数据元素,指针域存放后继结点地址 我们以一条 N1 ...

  4. java实现单链表、栈、队列三种数据结构

    一.单链表 1.在我们数据结构中,单链表非常重要.它里面的数据元素是以结点为单位,每个结点是由数据元素的数据和下一个结点的地址组成,在java集合框架里面 LinkedList.HashMap(数组加 ...

  5. java单链表常用操作

    总结提高,与君共勉 概述. 数据结构与算法亘古不变的主题,链表也是面试常考的问题,特别是手写代码常常出现,将从以下方面做个小结 [链表个数] [反转链表-循环] [反转链表-递归] [查找链表倒数第K ...

  6. java 单链表反转

    最近与人瞎聊,聊到各大厂的面试题,其中有一个就是用java实现单链表反转.闲来无事,决定就这个问题进行一番尝试. 1.准备链表 准备一个由DataNode组成的单向链表,DataNode如下: pub ...

  7. 9.java单链表初学代码复现及一些不值一提的小问题(2)

    首先写完了update和delete函数,在之前的铺垫下.倒是不难,结构和之前的都相同,遍历找到节点后处理该节点.代码如下 public void update(teamNode node){ tea ...

  8. Java单链表、双端链表、有序链表实现

    单链表: insertFirst:在表头插入一个新的链接点,时间复杂度为O(1) deleteFirst:删除表头的链接点,时间复杂度为O(1) 有了这两个方法,就可以用单链表来实现一个栈了,见htt ...

  9. java单链表代码实现

    用惯了C++,java写起来果然不太爽...不废话了,上代码... package javaInnerclassDemo; class Link{ class Node{ private String ...

  10. JAVA单链表的实现-不带头结点但带有尾指针

    1,本程序实现了线性表的链式存储结构.实现的链表带有两个指针,一个始终指向链表中的第一个结点,另一个指针始终指向链表中的最后一个结点. 之所以设置尾指针,是因为,在插入元素到链表中的末尾时,可以通过尾 ...

随机推荐

  1. idea插件仓库连接不到网络

    IDEA的插件中心连不上网 打开:设置-插件 选择:设置按钮-HTTP代理设置 勾选自动设置 输入 https://plugins.jetbrains.com/或者 http://127.0.0.1: ...

  2. 解决Git拉取出现“bad config line 1 in file C:\Users\quber/.gitconfig”的错误

    1.问题描述 我们在拉取Git项目的时候,突然出现如下图所示的错误提示: 2.解决办法 定位到.gitconfig文件,然后将其删除掉: 然后在项目文件夹中点击鼠标右键,选择Git Bash Here ...

  3. Q:rdp远程桌面如何传输文件

    通过自带的rdp远程连接传输文件 方法: 1.按下win+r键 输入 mstsc.打开远程桌面选择选项如下图 2.选择本地资源选项卡,打开详细信息选项 3.在详细信息选项卡中点开驱动器前面的+号,选择 ...

  4. Spark异常总结

    1.Spark读写同一张表报错问题Cannot overwrite a path that is also being read from 问题描述:Spark SQL在执行ORC和Parquet格式 ...

  5. IDEA Spring Boot项目,排查解决maven包冲突

    一.Idea安装插件 下载方式1:插件名称:maven helper 打开Idea设置,搜索安装该插件 下载方式2:https://plugins.jetbrains.com/plugin/7179- ...

  6. 越“挖”越有料,天翼云“息壤”助攻DeepSeek变身万能搭子!

    还在为DeepSeek服务器繁忙而抓狂? 还在为API调用费用涨价而头疼? 还在为数据安全而担忧? 别急! 天翼云"息壤"算力互联调度平台出马 全面解锁DeepSeek新玩法 带你 ...

  7. FastAPI路由与请求处理全解:手把手打造用户管理系统 🔌

    title: FastAPI路由与请求处理全解:手把手打造用户管理系统 date: 2025/3/2 updated: 2025/3/2 author: cmdragon excerpt: 通过咖啡店 ...

  8. Swagger OpenAPI Schema 为空时 Example Value 显示 "string" 的原因及解决方案

    解决Swagger UI示例值显示"string"的问题 最近在使用ObjectScript生成JSON接口文档时,遇到了一个奇怪的问题: 生成的JSON数据是正常的. 但Swag ...

  9. 【计算力学】CST单元格式推导

    CST单元格式推导

  10. 红日复现为什么失败之struct-046流量分析加msf特征总结

    struts2漏洞 一.指纹识别 s2的url路径组成(详见struts.xml配置文件):name工程名+namespace命名空间+atcion名称+extends拓展名 部署在根目录下,工程名可 ...