package com.shine.stack;
/*
* 栈的接口
*/
public interface SStack<T> {
boolean isEmpty();
void push(T x);
T pop();
T get();
}
package com.shine.stack;
/*
* 顺序栈类
*/
public class SeqStack<T> implements SStack<T> {
private Object element[];
private int top;
public SeqStack(int size){//构造容量为size的空栈
this.element = new Object[Math.abs(size)];
this.top = -1;
}
public SeqStack(){
this(64);
}
@Override
public boolean isEmpty() {
return this.top==-1;
}
@Override
public void push(T x) {//入栈操作
if(x==null)
return;
if(this.top==this.element.length-1){//若栈满,需要扩充栈的容量
Object[] temp = this.element;
this.element = new Object[temp.length*2];
for(int i=0;i<this.element.length;i++){
this.element[i] = temp[i];
}
this.top++;
this.element[this.top] = x;
}
}
@Override
public T pop() {//出栈操作
return this.top==-1?null:(T)element[top--];
}
@Override
public T get() {//获取栈顶元素
return this.top==-1?null:(T)element[top];
}
}
package com.shine.stack;
import com.shine.linearList.Node;
/*
* 链式栈
*/
public class LinkedStack<T> implements SStack<T>{
private Node<T> top;
public LinkedStack(){
this.top = null;
}
@Override
public boolean isEmpty() {
return this.top==null;
}
@Override
public void push(T x) {
if(x!=null)
this.top = new Node(x,this.top);
}
@Override
public T pop() {
if(this.top == null)
return null;
T temp = this.top.data;
this.top = this.top.next;
return temp;
}
@Override
public T get() {
return this.top==null?null:this.top.data;
}
}
分享到:
相关推荐
线性表,单链表,栈的代码实现,java简单实现,内附有代码少许注释
实现一个栈,要求使用O(1)时间获取栈中最小值,O(1)执行pop、push操作。
用java写的简单栈的实现,欢迎大家使用
用java实现的栈Stack类,不继承任何集合类,用对象数组实现
栈的顺序存储结构及Java实现 //MyStack.java public class MyStack { int MAX_SIZE = 100; int top; String[] stack; public void init(String[] array){ stack = new String[100]; top = -1; for (int i = ...
用Java实现一个栈
java模拟栈实现回文串的判断,适合新手学习!
Java用栈实现的计算器,界面用swing实现,不支持括号
基于技术栈Java SpringBoot实现 可以流式输出文本的飞书机器人,星火大模型机器人
java api 中也有stack,这个是根据stack的特性编写出来的; 此程序在功能上和java提供的功能是一样的,只是实现的方法不一样;
-- sip协议栈基于java的源码实例、内含jar包,用Eclipse直接打开运行。 -- 先运行server.java的main方法,再运行client.java的main方法
java实现顺序栈
Java实现栈的基本操作
Java语言编写的数据结构-栈的实现,包括顺序栈和链栈。
java数字栈和符号栈模拟计算器(中缀表达式) “计算中缀表达式”可以称得上是一个特别经典的关于栈的算法题,几乎在所有数据结构教材中都会涉及,而且很多公司面试或者笔试的时候都会把这道题作为一个考察点。可以说...
实现弹栈,进栈,判断栈是否为空或满等功能 Java入门的简单程序
java实现的顺序栈,部分代码:public class OrderStack { int top=-1; String[] stack; public OrderStack(int initcap)throws Exception{ if(initcap){
试用java.util.Stack泛型栈作为父类,用另一个泛型栈对象作为成员变量,模拟实现一个泛型子类Queue,当存储元素的第1个栈的元素超过dump时,再有元素入队列就倒入第2栈。除提供无参构造函数Queue( )外,其它所有队列...
java实现的栈
每运行一个java程序会产生一个java进程,每个java进程可能包含一个或者多个线程,每一个Java进程对应唯一一个JVM实例,每一个JVM...java实现内存动态分配目录 一.实验原理 二.实验流程图 三.实验代码 四.实验结果