链表栈


public class Node {
private Object object;
private Node next;

public Node() {
this.next = null;
this.object = null;
}

public Object getObject() {
return object;
}

public void setObject(Object object) {
this.object = object;
}

public Node getNext() {
return next;
}

public void setNext(Node next) {
this.next = next;
}
}


public class LinkStack {
private Node top;

public LinkStack() {
top = new Node();
}

/**
* 清空操作
* */
public void clear() {
top = new Node();
}

/**
* 压栈操作
* */
public void push(Object object) {
Node node = new Node();
node.setObject(object);
node.setNext(top.getNext());
top.setNext(node);
}

/**
* 出栈操作
* */
public Node pop() {
if (top.getNext() == null) {
System.out.println("Stack is Empty!");
return null;
}
Node returnNode = top.getNext();
top.setNext(top.getNext().getNext());
return returnNode;
}

/**
* 判断为空
* */
public boolean isEmpty() {
return (top.getNext() == null) ? true : false;
}

}


public class Test {
public static void main(String[] args) {
LinkStack linkStack = new LinkStack();
linkStack.push("1234");
linkStack.push("12345");
linkStack.push("123456");
linkStack.push("1234567");
linkStack.isEmpty();
System.out.println(linkStack.toString());
System.out.println("end");

}
}
栈---单向链表模拟栈的实现 上一篇大致的介绍了栈,并使用数组的方式模拟了栈的实现。 这次使用单向链表来模拟栈的实现 用单向链表实现栈的思路: 1.使用单向链表来模拟栈 2.创建节点类,创建一个top指针表示栈顶,初始化为null 3.入栈操作:当有数据加入到栈中时,将节点添加到链表的最后,并将top指针指向这个节点 4.出栈操作:当有数据出栈时,将最后的节点出栈(将最后的节点从链表中删除),并将top指向最后节点的前一个节点... 阅读详情

相关推荐

信息收集-服务器信息

服务器上面可以运行大量的系统服务和第三方应用服务,如果操作系统或者第三方软件没有及时升级打补丁,攻击者就有可能直接通过服务器上运行的服务进行攻击。

weixin_49349476的博客 1446

栈、队列、链表

队列(queue)是一种在一端进行插入,另一端进行删除的受限的线性表。队列是一种先进先出(First In First Out)的线性表,允许进入的一端成为队尾(rear),允许删除的一端称为队头(front)。2、队列常见基本操作创:InitQueue(&Q)判空:IsEmpty(Q)增:EnQueue(&Q,p)删: DeQueue(&Q,p)查:GetHead(&Q,x)由于队列是受限的线性表,并不是所有针对线性表的操作都合适。像是从队列中读取某个中间的元素。

m0_71266194的博客 1578

头歌平台-人工智能导论实验(人脸识别)

答案仅供参考,自己动手丰衣足食!!!

qq_52119136的博客 3026

用链表实现栈

单链表作为底层,实现栈的数据结构 栈的实现: package SingleLinkedListStack; import ArrayStack.Stack; import SingleLinkedList.Node; import SingleLinkedList.SingleLinkedList; /* * 用链表作为栈的底层 */ public class SingleLinkedListStack <E> implements Stack<E>{ // 用链表作为栈的底

无雨 1662

RPG MV游戏数据修改指南:从JSON解析到脚本进阶

游戏数据修改是游戏开发与逆向工程中的常见实践,其核心原理在于解析和操作游戏资源文件。许多现代游戏引擎采用结构化数据格式(如JSON)存储游戏配置,这为外部修改提供了可能。通过理解文件结构、数据格式与游戏逻辑的关联,开发者或爱好者可以调整游戏平衡、修复问题或实现个性化定制,这不仅能深化对游戏设计机制的理解,也具备实际的技术学习价值。本文以基于Web技术栈的RPG Maker MV(RPG MV)引擎为例,其游戏数据多以明文JSON存储,结构清晰。文章将具体阐述如何安全地修改角色属性、物品效果、敌人数据及技能公

weixin_29001419的博客 405

RK3568-MIPI屏幕调试实战:LCD初始化时序解析与转换

本文详细解析RK3568平台MIPI屏幕调试中的LCD初始化时序,重点介绍DCS Write与Generic Write数据类型的转换方法,并提供厂家时序到RK格式的实战转换案例。通过理解上电初始化时序的重要性,帮助开发者快速解决屏幕不亮、花屏等常见调试问题,提升RK3568硬件开发效率。

d6e7f8g9h的博客 186

java利用链表实现栈

在前面,写了怎么利用数组来实现栈,以及动态数组的利用。今天我们就利用链表的方式来实现栈,我们知道链表存储数据只要内存够,就可以放足够多的数据,这也就解决了数组带来的弊端。 链表类: public class LLNode { private Object data;//存放数据 private LLNode next;//指向下一个节点 public LLNode(){ } public...

《落程魄序》作者“落魄哥”的博客 4998

Android 音频源码分析——AudioTrack设备选择

Android 音频源码分析——AndroidRecord录音(一) Android 音频源码分析——AndroidRecord录音(二) Android 音频源码分析——AndroidRecord音频数据传输流程 Android 音频源码分析——audioserver启动 Android 音频源码分析——AudioFlinger Android 音频源码分析——AudioTrack设备选择 基于Andorid9.0源码 以AudioTrack为例,梳理下输出设备选择流程。 音频设备选择的影响因素: Au

奋斗的菜鸟ing 3971

用单链表实现栈

一)栈 栈:先进后出、后进先出 二)用单链表实现栈 第一步:初始化单链表结构 /** * 用单链表实现栈 * @author ouyangjun */ public class SingleChainTableStack<E> { /** 初始化单链表结构 */ static class Node<E> { E i...

p812438109的专栏 2094

ANSYS Workbench实战:用网格自适应搞定超弹性橡胶大变形仿真(附避坑命令流)

本文深入探讨了ANSYS Workbench中超弹性橡胶大变形仿真的网格自适应技术,重点解析了混合U-P单元的应用、非线性自适应网格的实战技巧及材料模型选择的注意事项。通过具体案例和命令流示例,帮助工程师有效解决橡胶仿真中的收敛问题和网格畸变挑战,提升仿真精度和效率。

weixin_42666036的博客 303

国科大学习资料--高级软件工程-复习题概念解释答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题概念解释答案 1. 敏捷开发方法与Scrum方法 a.敏捷是一种强调轻量的过程方法论,它强调拥抱变化而不是与之对抗,通过有效的沟通发挥群体的智慧。敏捷方法采用迭代/增量开发的过程模型。敏捷宣言是:个体和交互高于流程和工具;工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。 虽然右边的也有价值,但是认为左边的更有价值。 b.Scrum(Schwaber和Beedle)是管理两个披萨规模(4-9人)的软件开发团队的方法,它高频率的短会

无名何许人的博客 1444

链表实现栈

package com.Stack; /** * @Auther: 大哥的叔 * @Date: 2019/7/31 17:27 * @Description: */ public class LinkedListStackDemo { public static void main(String[] args) { LinkedListStack...

大哥的叔的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

基于双向链表实现的栈

看了LinkedList的源码,明白了LinkedList底层使用的是双向链表,一直想找个机会实现一下双向链表,今天写到力扣的每日一题20.有效的括号,正好此题需要使用到栈,所以借此机会来自己实现一下基于双向链表实现的栈,实现栈之前要了解以下知识 1.什么是双向链表 双向链表是指一个节点有一个数据域,两个指针域,一个指针域指向上一个节点,一个指针域指向下一个节点,现在将指向上一个节点的指针域命名为pre,将指向下一个节点的指针域命名为next,节点命名为node,一个合格的双向链表如下图所示 中间的nod

Gee_Zer的博客 4524

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++实现链表模板、链表栈模板、数组栈模板

数组栈来自于上一篇文章(头文件1、2,源文件1、2) 1、实现链表模板 2、创建链表栈模板 3、比较数组栈和链表栈 1. 头文件1 Array.h #pragma once template<typename T> class Array { public: Array(int capacity); Array(); T& operator[](int i); int...

牛~ 375

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java使用链表来模拟栈

Java使用链表来模拟栈 关于栈和链表的相关介绍在我之前的博客里面,不懂的可以去看我的相关栈和链表的博客! 1.使用链表来模拟栈,首先需要构建一个链表,构建一个链表之前我们需要创建链表的节点——Node类 //定义链表的节点 class Node { private int value; private Node next; public Node(int value) { this.value = value; } public int getV

mfx7700429的博客 1070

链表、栈、队列

当慢指针刚进环时,可能就和快指针相遇了,最差情况下两个指针之间的距离刚好就是环的长度。此时,两个指针每移动一次,之间的距离就缩小一步,不会出现每次刚好是套圈的情况,因此:在满指针走到一圈之前,快指针肯定是可以追上慢指针的,即相遇。快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表其实位置开始运行,如果链表带环则一定会在环中相遇,否则快指针率先走到链表的末尾。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特性。、非顺序的存储结构,数据元素的。

qq_63915254的博客 1291

栈的实现之用链表实现

用链表实现栈 上次我们用数组实现了栈,数组结构实现栈比较容易,那么用链表该如何实现栈呢?

欢迎留言技术探讨 656

基于链表实现栈

用链表实现栈定义栈接口话不多说,上代码 关于链表的实现请看我之前的博客: 实现最基本的动态数据结构链表 定义栈接口 将栈的基本操作定义在接口中,实现类去具体实现。 话不多说,上代码 import stack.Stack; /* * 用链表实现栈 * */ public class LinkedListStack<E> implements Stack<E> { p...

weixin_43400170的博客 278

双向链表实现栈

双向链表来实现栈

m0_56398287的博客 1713

【栈】用链表

链表,队,栈在程序结束前都要注意有无释放表头结点。 这个是带表头结点的,即head指针指向表头,表头中不存放数据,表头下一个指针指向第一个数据 包括 is_malloc_ok create_node create_stack push_stack pop_stack is_empty gettop_stack empty_stack release_stack #in...

Marianas Trench 278

单向链表实现栈

单向链表实现栈 首先我们要知道"栈"为何物 , 他是一种储存数据的方法 , 有点类似子弹夹 , 拥有先进后出的特点 . 同时进栈与出栈都只能在一端进行. 1,创建MyStack接口用来定义方法 public interface MyStack { boolean isEmpty(); //判断是否为空 boolean pash(Object x); //入栈 Object pop(); //出栈 Object getTop(); //获得栈顶元素 } 2,创建链表

qq_46487100的博客 766

栈和链表的区分

定义了一个整数类型的栈,并依次将1至n压入栈中。然后显示栈的大小,访问并打印栈顶元素但不移除。接下来,我们将栈顶元素逐一出栈并打印,直至栈为空。最后检查栈是否为空并输出结果。来实现,但栈关注的是。操作,而链表关注的是。

u014114223的博客 792
上一篇: 定义初始化方法和销毁方法
下一篇: bean作用域
lyl130
博客等级 码龄18年 0粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值