Java实现链式栈
来源:互联网 发布:apache cgi 配置 编辑:程序博客网 时间:2024/06/07 01:39
链式栈中每个结点SLNode都由data域和指向下一个结点的引用nextNode组成。
栈顶引用为top。
/** * 链式栈类 * @author liangxiamoyi * * @param <T> */public class LStack<T> {/** * 栈顶引用 */ private SLNode<T> top; /** * 构造函数 */ public LStack(){ top=null; } /** * 判断栈是否为空 * @return */ public boolean isEmpty(){ return top==null; } /** * 清空栈 */ public void clear(){ while(!isEmpty()){ top=top.nextNode; } } /** * 压栈 * @param item 进栈元素值 * @return 成功返回true */ public boolean push(T item){ top=new SLNode<T>(item,top); return true; } /** * 弹栈 * @return 返回弹出元素值 */ public T pop(){ if(isEmpty()){ throw new RuntimeException("empty stack"); } SLNode<T> temp=top; top=top.nextNode; return temp.data; } /** * 读取栈顶元素值 * @return */ public T peek(){ if(isEmpty()){ throw new RuntimeException("empty stack"); } return top.data; } //测试 public static void main(String[] args){ LStack<Character> lstack=new LStack<Character>(); lstack.push('a'); lstack.push('b'); lstack.push('c'); lstack.push('d'); System.out.println(lstack.peek()); lstack.pop(); System.out.println(lstack.peek()); lstack.clear(); System.out.println(lstack.peek()); }}SLNode类:
/** * 单链表结点类 * @author liangxiamoyi * * @param <T> */public class SLNode<T> {/** * 数据域 */protected T data;/** * 下一个结点 */protected SLNode<T> nextNode;/** * 构造方法 * @param node 下一结点 */public SLNode(SLNode<T> node){this.nextNode=node;}/** * 构造方法 * @param data 数据 * @param node 下一结点 */public SLNode(T data,SLNode<T> node){this.data=data;this.nextNode=node;}/** * 获得数据 * @return */public T getData(){return data; }/** * 获得下一结点 * @return */public SLNode<T> getNextNode(){return nextNode;}/** * 设置数据 * @param data */public void setData(T data){this.data=data;}/** * 设置下一结点 * @param node */public void setNextNode(SLNode<T> node){this.nextNode=node;}}
0 0
- 链式栈 java实现
- Java实现链式栈
- Java实现链式栈
- 栈(顺序+链式) java实现
- Java栈(链式实现)
- 数据结构学习----链式栈(Java实现)
- java泛型实现链式栈
- java自己实现的链式栈
- Java实现链式队列
- 双链表、链式栈、链式队列 及实现
- 双链表、链式栈、链式队列 及实现
- 栈的链式实现
- 链式栈的实现
- 栈---链式存储实现
- 栈的链式实现
- Javascript实现链式栈
- C实现链式栈
- 链式栈的实现
- DWR的使用
- 实用的弹出层效果(阻止浏览器的默认行为)
- Css3.0的一些体会
- 集合(数组,字典)
- saiku 修改默认图表颜色
- Java实现链式栈
- linux的yum命令常用场景
- 欢迎使用CSDN-markdown编辑器
- #warning: 尚未导入平台类型:[XXXXXXX (1)]
- MySQL中优化sql语句查询常用的30种方法
- DL学习笔记【6】caffe参数调节-卷积层(convolution)
- 求学Android——1.无标题代码 2.隐式启动及其配置与参数
- DFS 深度优先遍历
- 自定义View下雪效果